{-# LANGUAGE DeriveGeneric #-}

-- | Provides the 'TeamMember' type; note that this has an additional field
-- compared to the 'User' type, 'isTeamCaptain' and lacks much of the context
-- provided by the 'User' type.
--
-- Generally instantiated by 'Web.ExtraLife.API.teamMembers' (returned as a List)
module Web.ExtraLife.TeamMember where

import Prelude
import Data.Time    as Time
import Data.Text             ( Text )
import GHC.Generics          ( Generic )

import Data.Aeson   as Aeson

-- | Represents a single member of a given team
data TeamMember =
    TeamMember { TeamMember -> Text
displayName     :: !Text
               , TeamMember -> Float
fundraisingGoal :: Float
               , TeamMember -> Int
participantID   :: Int
               , TeamMember -> Text
teamName        :: Text
               , TeamMember -> Text
eventName       :: Text
               , TeamMember -> String
avatarImageURL  :: !String
               , TeamMember -> UTCTime
createdDateUTC  :: !Time.UTCTime
               , TeamMember -> Float
sumDonations    :: Float
               , TeamMember -> Int
teamID          :: Int
               , TeamMember -> Bool
isTeamCaptain   :: Bool
               , TeamMember -> Int
numDonations    :: Int
               } deriving ( Int -> TeamMember -> ShowS
[TeamMember] -> ShowS
TeamMember -> String
(Int -> TeamMember -> ShowS)
-> (TeamMember -> String)
-> ([TeamMember] -> ShowS)
-> Show TeamMember
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TeamMember] -> ShowS
$cshowList :: [TeamMember] -> ShowS
show :: TeamMember -> String
$cshow :: TeamMember -> String
showsPrec :: Int -> TeamMember -> ShowS
$cshowsPrec :: Int -> TeamMember -> ShowS
Show, (forall x. TeamMember -> Rep TeamMember x)
-> (forall x. Rep TeamMember x -> TeamMember) -> Generic TeamMember
forall x. Rep TeamMember x -> TeamMember
forall x. TeamMember -> Rep TeamMember x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TeamMember x -> TeamMember
$cfrom :: forall x. TeamMember -> Rep TeamMember x
Generic )
instance FromJSON TeamMember
instance ToJSON TeamMember