{-# LANGUAGE TemplateHaskell #-}
module Strive.Types.Athletes
( AthleteDetailed(..)
, AthleteSummary(..)
, AthleteMeta(..)
, ActivityTotals(..)
, AthleteStats(..)
) where
import Data.Aeson.TH (deriveFromJSON)
import Data.Text (Text)
import Data.Time.Clock (UTCTime)
import Strive.Enums (Gender, MeasurementPreference, ResourceState)
import Strive.Internal.TH (options)
import Strive.Types.Clubs (ClubSummary)
import Strive.Types.Gear (GearSummary)
data AthleteDetailed = AthleteDetailed
{ AthleteDetailed -> [GearSummary]
athleteDetailed_bikes :: [GearSummary]
, AthleteDetailed -> Text
athleteDetailed_city :: Text
, AthleteDetailed -> [ClubSummary]
athleteDetailed_clubs :: [ClubSummary]
, AthleteDetailed -> Text
athleteDetailed_country :: Text
, AthleteDetailed -> UTCTime
athleteDetailed_createdAt :: UTCTime
, AthleteDetailed -> Text
athleteDetailed_datePreference :: Text
, AthleteDetailed -> Text
athleteDetailed_email :: Text
, AthleteDetailed -> Text
athleteDetailed_firstname :: Text
, AthleteDetailed -> Maybe Text
athleteDetailed_follower :: Maybe Text
, AthleteDetailed -> Integer
athleteDetailed_followerCount :: Integer
, AthleteDetailed -> Maybe Text
athleteDetailed_friend :: Maybe Text
, AthleteDetailed -> Integer
athleteDetailed_friendCount :: Integer
, AthleteDetailed -> Maybe Integer
athleteDetailed_ftp :: Maybe Integer
, AthleteDetailed -> Integer
athleteDetailed_id :: Integer
, AthleteDetailed -> Text
athleteDetailed_lastname :: Text
, AthleteDetailed -> MeasurementPreference
athleteDetailed_measurementPreference :: MeasurementPreference
, AthleteDetailed -> Integer
athleteDetailed_mutualFriendCount :: Integer
, AthleteDetailed -> Bool
athleteDetailed_premium :: Bool
, AthleteDetailed -> Text
athleteDetailed_profile :: Text
, AthleteDetailed -> Text
athleteDetailed_profileMedium :: Text
, AthleteDetailed -> ResourceState
athleteDetailed_resourceState :: ResourceState
, AthleteDetailed -> Maybe Gender
athleteDetailed_sex :: Maybe Gender
, AthleteDetailed -> [GearSummary]
athleteDetailed_shoes :: [GearSummary]
, AthleteDetailed -> Maybe Text
athleteDetailed_state :: Maybe Text
, AthleteDetailed -> UTCTime
athleteDetailed_updatedAt :: UTCTime
, AthleteDetailed -> Maybe Double
athleteDetailed_weight :: Maybe Double
}
deriving Int -> AthleteDetailed -> ShowS
[AthleteDetailed] -> ShowS
AthleteDetailed -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AthleteDetailed] -> ShowS
$cshowList :: [AthleteDetailed] -> ShowS
show :: AthleteDetailed -> String
$cshow :: AthleteDetailed -> String
showsPrec :: Int -> AthleteDetailed -> ShowS
$cshowsPrec :: Int -> AthleteDetailed -> ShowS
Show
$(deriveFromJSON options ''AthleteDetailed)
data AthleteSummary = AthleteSummary
{ AthleteSummary -> Maybe Text
athleteSummary_city :: Maybe Text
, AthleteSummary -> Maybe Text
athleteSummary_country :: Maybe Text
, AthleteSummary -> UTCTime
athleteSummary_createdAt :: UTCTime
, AthleteSummary -> Text
athleteSummary_firstname :: Text
, AthleteSummary -> Maybe Text
athleteSummary_follower :: Maybe Text
, AthleteSummary -> Maybe Text
athleteSummary_friend :: Maybe Text
, AthleteSummary -> Integer
athleteSummary_id :: Integer
, AthleteSummary -> Text
athleteSummary_lastname :: Text
, AthleteSummary -> Bool
athleteSummary_premium :: Bool
, AthleteSummary -> Text
athleteSummary_profile :: Text
, AthleteSummary -> Text
athleteSummary_profileMedium :: Text
, AthleteSummary -> ResourceState
athleteSummary_resourceState :: ResourceState
, AthleteSummary -> Maybe Gender
athleteSummary_sex :: Maybe Gender
, AthleteSummary -> Maybe Text
athleteSummary_state :: Maybe Text
, AthleteSummary -> UTCTime
athleteSummary_updatedAt :: UTCTime
}
deriving Int -> AthleteSummary -> ShowS
[AthleteSummary] -> ShowS
AthleteSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AthleteSummary] -> ShowS
$cshowList :: [AthleteSummary] -> ShowS
show :: AthleteSummary -> String
$cshow :: AthleteSummary -> String
showsPrec :: Int -> AthleteSummary -> ShowS
$cshowsPrec :: Int -> AthleteSummary -> ShowS
Show
$(deriveFromJSON options ''AthleteSummary)
data AthleteMeta = AthleteMeta
{ AthleteMeta -> Integer
athleteMeta_id :: Integer
, AthleteMeta -> ResourceState
athleteMeta_resourceState :: ResourceState
}
deriving Int -> AthleteMeta -> ShowS
[AthleteMeta] -> ShowS
AthleteMeta -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AthleteMeta] -> ShowS
$cshowList :: [AthleteMeta] -> ShowS
show :: AthleteMeta -> String
$cshow :: AthleteMeta -> String
showsPrec :: Int -> AthleteMeta -> ShowS
$cshowsPrec :: Int -> AthleteMeta -> ShowS
Show
$(deriveFromJSON options ''AthleteMeta)
data ActivityTotals = ActivityTotals
{ ActivityTotals -> Integer
activityTotals_count :: Integer
, ActivityTotals -> Double
activityTotals_distance :: Double
, ActivityTotals -> Double
activityTotals_movingTime :: Double
, ActivityTotals -> Double
activityTotals_elapsedTime :: Double
, ActivityTotals -> Double
activityTotals_elevationGain :: Double
, ActivityTotals -> Double
activityTotals_achievementCount :: Double
}
deriving Int -> ActivityTotals -> ShowS
[ActivityTotals] -> ShowS
ActivityTotals -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ActivityTotals] -> ShowS
$cshowList :: [ActivityTotals] -> ShowS
show :: ActivityTotals -> String
$cshow :: ActivityTotals -> String
showsPrec :: Int -> ActivityTotals -> ShowS
$cshowsPrec :: Int -> ActivityTotals -> ShowS
Show
$(deriveFromJSON options ''ActivityTotals)
data AthleteStats = AthleteStats
{ AthleteStats -> Double
athleteStats_biggestRideDistance :: Double
, AthleteStats -> Double
athleteStats_biggestClimbElevationGain :: Double
, AthleteStats -> ActivityTotals
athleteStats_recentRideTotals :: ActivityTotals
, AthleteStats -> ActivityTotals
athleteStats_recentRunTotals :: ActivityTotals
, AthleteStats -> ActivityTotals
athleteStats_ytdRideTotals :: ActivityTotals
, AthleteStats -> ActivityTotals
athleteStats_ytdRunTotals :: ActivityTotals
, AthleteStats -> ActivityTotals
athleteStats_allRideTotals :: ActivityTotals
, AthleteStats -> ActivityTotals
athleteStats_allRunTotals :: ActivityTotals
}
deriving Int -> AthleteStats -> ShowS
[AthleteStats] -> ShowS
AthleteStats -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AthleteStats] -> ShowS
$cshowList :: [AthleteStats] -> ShowS
show :: AthleteStats -> String
$cshow :: AthleteStats -> String
showsPrec :: Int -> AthleteStats -> ShowS
$cshowsPrec :: Int -> AthleteStats -> ShowS
Show
$(deriveFromJSON options ''AthleteStats)