{-# 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
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
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
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
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
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)
newtype SegmentExplorerResponse = SegmentExplorerResponse
{ SegmentExplorerResponse -> [SegmentExplorerEntry]
segmentExplorerResponse_segments :: [SegmentExplorerEntry]
}
deriving (Int -> SegmentExplorerResponse -> ShowS
[SegmentExplorerResponse] -> ShowS
SegmentExplorerResponse -> String
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)