package com.sweetzpot.stravazpot.segment.rest;
import com.sweetzpot.stravazpot.common.model.Gender;
import com.sweetzpot.stravazpot.segment.model.AgeGroup;
import com.sweetzpot.stravazpot.segment.model.DateRange;
import com.sweetzpot.stravazpot.segment.model.ExploreResult;
import com.sweetzpot.stravazpot.segment.model.ExploreType;
import com.sweetzpot.stravazpot.segment.model.Leaderboard;
import com.sweetzpot.stravazpot.segment.model.Segment;
import com.sweetzpot.stravazpot.segment.model.SegmentEffort;
import com.sweetzpot.stravazpot.segment.model.WeightClass;
import java.util.List;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;
public interface SegmentRest {
@GET("segments/{id}")
Call<Segment> getSegment(@Path("id") Integer id);
@GET("segments/starred")
Call<List<Segment>> getMyStarredSegments(
@Query("page") Integer page,
@Query("per_page") Integer perPage);
@GET("athletes/{id}/segments/starred")
Call<List<Segment>> getAthleteStarredSegments(
@Path("id") Integer id,
@Query("page") Integer page,
@Query("per_page") Integer perPage);
@PUT("segments/{id}/starred") @FormUrlEncoded
Call<Segment> starSegment(
@Path("id") Integer id,
@Field("starred") Boolean starred);
@GET("segments/{id}/all_efforts")
Call<List<SegmentEffort>> getSegmentEfforts(
@Path("id") Integer id,
@Query("athlete_id") Integer athleteID,
@Query("start_date_local") String startDate,
@Query("end_date_local") String endDate,
@Query("page") Integer page,
@Query("per_page") Integer perPage);
@GET("segments/{id}/leaderboard")
Call<Leaderboard> getSegmentLeaderboard(
@Path("id") Integer id,
@Query("gender") Gender gender,
@Query("age_group") AgeGroup ageGroup,
@Query("weight_class") WeightClass weightClass,
@Query("following") Boolean following,
@Query("club_id") Integer clubID,
@Query("date_range") DateRange dateRange,
@Query("context_entries") Integer contextEntries,
@Query("page") Integer page,
@Query("per_page") Integer perPage);
@GET("segments/explore")
Call<ExploreResult> exploreSegments(
@Query("bounds") String bounds,
@Query("activity_type") ExploreType activityType,
@Query("min_cat") Integer minCat,
@Query("max_cat") Integer maxCat);
}