{-# LANGUAGE TemplateHaskell #-}
module Strive.Types.Segments
( SegmentDetailed(..)
, SegmentSummary(..)
, SegmentLeaderboardResponse(..)
, SegmentLeaderboardEntry(..)
, SegmentExplorerResponse(..)
, SegmentExplorerEntry(..)
) where
import Data.Aeson.TH (deriveFromJSON)
import Data.Text (Text)
import Data.Time.Clock (UTCTime)
import Strive.Enums (ActivityType, Gender, ResourceState)
import Strive.Internal.TH (options)
import Strive.Types.Polylines (Polyline, PolylineDetailed)
data SegmentDetailed = SegmentDetailed
{ SegmentDetailed -> ActivityType
segmentDetailed_activityType :: ActivityType
, SegmentDetailed -> Integer
segmentDetailed_athleteCount :: Integer
, SegmentDetailed -> Double
segmentDetailed_averageGrade :: Double
, SegmentDetailed -> Text
segmentDetailed_city :: Text
, SegmentDetailed -> Integer
segmentDetailed_climbCategory :: Integer
, SegmentDetailed -> Text
segmentDetailed_country :: Text
, SegmentDetailed -> UTCTime
segmentDetailed_createdAt :: UTCTime
, SegmentDetailed -> Double
segmentDetailed_distance :: Double
, SegmentDetailed -> Integer
segmentDetailed_effortCount :: Integer
, SegmentDetailed -> Double
segmentDetailed_elevationHigh :: Double
, SegmentDetailed -> Double
segmentDetailed_elevationLow :: Double
, SegmentDetailed -> Double
segmentDetailed_endLatitude :: Double
, SegmentDetailed -> (Double, Double)
segmentDetailed_endLatlng :: (Double, Double)
, SegmentDetailed -> Double
segmentDetailed_endLongitude :: Double
, SegmentDetailed -> Bool
segmentDetailed_hazardous :: Bool
, SegmentDetailed -> Integer
segmentDetailed_id :: Integer
, SegmentDetailed -> PolylineDetailed
segmentDetailed_map :: PolylineDetailed
, SegmentDetailed -> Double
segmentDetailed_maximumGrade :: Double
, SegmentDetailed -> Text
segmentDetailed_name :: Text
, SegmentDetailed -> Bool
segmentDetailed_private :: Bool
, SegmentDetailed -> ResourceState
segmentDetailed_resourceState :: ResourceState
, SegmentDetailed -> Integer
segmentDetailed_starCount :: Integer
, SegmentDetailed -> Bool
segmentDetailed_starred :: Bool
, SegmentDetailed -> Double
segmentDetailed_startLatitude :: Double
, SegmentDetailed -> (Double, Double)
segmentDetailed_startLatlng :: (Double, Double)
, SegmentDetailed -> Double
segmentDetailed_startLongitude :: Double
, SegmentDetailed -> Text
segmentDetailed_state :: Text
, SegmentDetailed -> Double
segmentDetailed_totalElevationGain :: Double
, SegmentDetailed -> UTCTime
segmentDetailed_updatedAt :: UTCTime
}
deriving Int -> SegmentDetailed -> ShowS
[SegmentDetailed] -> ShowS
SegmentDetailed -> String
(Int -> SegmentDetailed -> ShowS)
-> (SegmentDetailed -> String)
-> ([SegmentDetailed] -> ShowS)
-> Show SegmentDetailed
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SegmentDetailed] -> ShowS
$cshowList :: [SegmentDetailed] -> ShowS
show :: SegmentDetailed -> String
$cshow :: SegmentDetailed -> String
showsPrec :: Int -> SegmentDetailed -> ShowS
$cshowsPrec :: Int -> SegmentDetailed -> ShowS
Show
$(deriveFromJSON options ''SegmentDetailed)
data SegmentSummary = SegmentSummary
{ SegmentSummary -> ActivityType
segmentSummary_activityType :: ActivityType
, SegmentSummary -> Double
segmentSummary_averageGrade :: Double
, SegmentSummary -> Text
segmentSummary_city :: Text
, SegmentSummary -> Integer
segmentSummary_climbCategory :: Integer
, SegmentSummary -> Text
segmentSummary_country :: Text
, SegmentSummary -> Double
segmentSummary_distance :: Double
, SegmentSummary -> Double
segmentSummary_elevationHigh :: Double
, SegmentSummary -> Double
segmentSummary_elevationLow :: Double
, SegmentSummary -> Double
segmentSummary_endLatitude :: Double
, SegmentSummary -> (Double, Double)
segmentSummary_endLatlng :: (Double, Double)
, SegmentSummary -> Double
segmentSummary_endLongitude :: Double
, SegmentSummary -> Integer
segmentSummary_id :: Integer
, SegmentSummary -> Double
segmentSummary_maximumGrade :: Double
, SegmentSummary -> Text
segmentSummary_name :: Text
, SegmentSummary -> Bool
segmentSummary_private :: Bool
, SegmentSummary -> ResourceState
segmentSummary_resourceState :: ResourceState
, SegmentSummary -> Bool
segmentSummary_starred :: Bool
, SegmentSummary -> Double
segmentSummary_startLatitude :: Double
, SegmentSummary -> (Double, Double)
segmentSummary_startLatlng :: (Double, Double)
, SegmentSummary -> Double
segmentSummary_startLongitude :: Double
, SegmentSummary -> Text
segmentSummary_state :: Text
}
deriving Int -> SegmentSummary -> ShowS
[SegmentSummary] -> ShowS
SegmentSummary -> String
(Int -> SegmentSummary -> ShowS)
-> (SegmentSummary -> String)
-> ([SegmentSummary] -> ShowS)
-> Show SegmentSummary
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SegmentSummary] -> ShowS
$cshowList :: [SegmentSummary] -> ShowS
show :: SegmentSummary -> String
$cshow :: SegmentSummary -> String
showsPrec :: Int -> SegmentSummary -> ShowS
$cshowsPrec :: Int -> SegmentSummary -> ShowS
Show
$(deriveFromJSON options ''SegmentSummary)
data SegmentLeaderboardEntry = SegmentLeaderboardEntry
{ SegmentLeaderboardEntry -> Integer
segmentLeaderboardEntry_activityId :: Integer
, SegmentLeaderboardEntry -> Maybe Gender
segmentLeaderboardEntry_athleteGender :: Maybe Gender
, SegmentLeaderboardEntry -> Integer
segmentLeaderboardEntry_athleteId :: Integer
, SegmentLeaderboardEntry -> Text
segmentLeaderboardEntry_athleteName :: Text
, SegmentLeaderboardEntry -> Text
segmentLeaderboardEntry_athleteProfile :: Text
, SegmentLeaderboardEntry -> Double
segmentLeaderboardEntry_averageHr :: Double
, SegmentLeaderboardEntry -> Double
segmentLeaderboardEntry_averageWatts :: Double
, SegmentLeaderboardEntry -> Double
segmentLeaderboardEntry_distance :: Double
, SegmentLeaderboardEntry -> Integer
segmentLeaderboardEntry_effortId :: Integer
, SegmentLeaderboardEntry -> Integer
segmentLeaderboardEntry_elapsedTime :: Integer
, SegmentLeaderboardEntry -> Integer
segmentLeaderboardEntry_movingTime :: Integer
, SegmentLeaderboardEntry -> Integer
segmentLeaderboardEntry_rank :: Integer
, SegmentLeaderboardEntry -> UTCTime
segmentLeaderboardEntry_startDate :: UTCTime
, SegmentLeaderboardEntry -> UTCTime
segmentLeaderboardEntry_startDateLocal :: UTCTime
}
deriving Int -> SegmentLeaderboardEntry -> ShowS
[SegmentLeaderboardEntry] -> ShowS
SegmentLeaderboardEntry -> String
(Int -> SegmentLeaderboardEntry -> ShowS)
-> (SegmentLeaderboardEntry -> String)
-> ([SegmentLeaderboardEntry] -> ShowS)
-> Show SegmentLeaderboardEntry
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SegmentLeaderboardEntry] -> ShowS
$cshowList :: [SegmentLeaderboardEntry] -> ShowS
show :: SegmentLeaderboardEntry -> String
$cshow :: SegmentLeaderboardEntry -> String
showsPrec :: Int -> SegmentLeaderboardEntry -> ShowS
$cshowsPrec :: Int -> SegmentLeaderboardEntry -> ShowS
Show
$(deriveFromJSON options ''SegmentLeaderboardEntry)
data SegmentLeaderboardResponse = SegmentLeaderboardResponse
{ SegmentLeaderboardResponse -> Integer
segmentLeaderboardResponse_effortCount :: Integer
, SegmentLeaderboardResponse -> Integer
segmentLeaderboardResponse_entryCount :: Integer
, SegmentLeaderboardResponse -> [SegmentLeaderboardEntry]
segmentLeaderboardResponse_entries :: [SegmentLeaderboardEntry]
}
deriving Int -> SegmentLeaderboardResponse -> ShowS
[SegmentLeaderboardResponse] -> ShowS
SegmentLeaderboardResponse -> String
(Int -> SegmentLeaderboardResponse -> ShowS)
-> (SegmentLeaderboardResponse -> String)
-> ([SegmentLeaderboardResponse] -> ShowS)
-> Show SegmentLeaderboardResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SegmentLeaderboardResponse] -> ShowS
$cshowList :: [SegmentLeaderboardResponse] -> ShowS
show :: SegmentLeaderboardResponse -> String
$cshow :: SegmentLeaderboardResponse -> String
showsPrec :: Int -> SegmentLeaderboardResponse -> ShowS
$cshowsPrec :: Int -> SegmentLeaderboardResponse -> ShowS
Show
$(deriveFromJSON options ''SegmentLeaderboardResponse)
data SegmentExplorerEntry = SegmentExplorerEntry
{ SegmentExplorerEntry -> Double
segmentExplorerEntry_avgGrade :: Double
, SegmentExplorerEntry -> Integer
segmentExplorerEntry_climbCategory :: Integer
, SegmentExplorerEntry -> String
segmentExplorerEntry_climbCategoryDesc :: String
, SegmentExplorerEntry -> Double
segmentExplorerEntry_distance :: Double
, SegmentExplorerEntry -> Double
segmentExplorerEntry_elevDifference :: Double
, SegmentExplorerEntry -> (Double, Double)
segmentExplorerEntry_endLatlng :: (Double, Double)
, SegmentExplorerEntry -> Integer
segmentExplorerEntry_id :: Integer
, SegmentExplorerEntry -> Text
segmentExplorerEntry_name :: Text
, SegmentExplorerEntry -> Polyline
segmentExplorerEntry_points :: Polyline
, SegmentExplorerEntry -> ResourceState
segmentExplorerEntry_resourceState :: ResourceState
, SegmentExplorerEntry -> Bool
segmentExplorerEntry_starred :: Bool
, SegmentExplorerEntry -> (Double, Double)
segmentExplorerEntry_startLatlng :: (Double, Double)
}
deriving Int -> SegmentExplorerEntry -> ShowS
[SegmentExplorerEntry] -> ShowS
SegmentExplorerEntry -> String
(Int -> SegmentExplorerEntry -> ShowS)
-> (SegmentExplorerEntry -> String)
-> ([SegmentExplorerEntry] -> ShowS)
-> Show SegmentExplorerEntry
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SegmentExplorerEntry] -> ShowS
$cshowList :: [SegmentExplorerEntry] -> ShowS
show :: SegmentExplorerEntry -> String
$cshow :: SegmentExplorerEntry -> String
showsPrec :: Int -> SegmentExplorerEntry -> ShowS
$cshowsPrec :: Int -> SegmentExplorerEntry -> ShowS
Show
$(deriveFromJSON options ''SegmentExplorerEntry)
data SegmentExplorerResponse = SegmentExplorerResponse
{ SegmentExplorerResponse -> [SegmentExplorerEntry]
segmentExplorerResponse_segments :: [SegmentExplorerEntry]
}
deriving Int -> SegmentExplorerResponse -> ShowS
[SegmentExplorerResponse] -> ShowS
SegmentExplorerResponse -> String
(Int -> SegmentExplorerResponse -> ShowS)
-> (SegmentExplorerResponse -> String)
-> ([SegmentExplorerResponse] -> ShowS)
-> Show SegmentExplorerResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SegmentExplorerResponse] -> ShowS
$cshowList :: [SegmentExplorerResponse] -> ShowS
show :: SegmentExplorerResponse -> String
$cshow :: SegmentExplorerResponse -> String
showsPrec :: Int -> SegmentExplorerResponse -> ShowS
$cshowsPrec :: Int -> SegmentExplorerResponse -> ShowS
Show
$(deriveFromJSON options ''SegmentExplorerResponse)