{-# LANGUAGE DeriveGeneric #-}

-- | Provides the 'Team' type
--
-- Generally instantiated by 'Web.ExtraLife.API.teamInfo'
module Web.ExtraLife.Team where

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

import Data.Aeson   as Aeson

-- | Represents a team of donation drive participants
data Team = Team
    { Team -> Float
fundraisingGoal :: Float
    , Team -> Text
eventName       :: Text
    , Team -> String
avatarImageURL  :: !String
    , Team -> UTCTime
createdDateUTC  :: !Time.UTCTime
    , Team -> Float
sumDonations    :: Float
    , Team -> Int
teamID          :: Int
    , Team -> Text
name            :: !Text
    , Team -> Int
numDonations    :: Int
    } deriving ( Int -> Team -> ShowS
[Team] -> ShowS
Team -> String
(Int -> Team -> ShowS)
-> (Team -> String) -> ([Team] -> ShowS) -> Show Team
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Team] -> ShowS
$cshowList :: [Team] -> ShowS
show :: Team -> String
$cshow :: Team -> String
showsPrec :: Int -> Team -> ShowS
$cshowsPrec :: Int -> Team -> ShowS
Show, (forall x. Team -> Rep Team x)
-> (forall x. Rep Team x -> Team) -> Generic Team
forall x. Rep Team x -> Team
forall x. Team -> Rep Team x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Team x -> Team
$cfrom :: forall x. Team -> Rep Team x
Generic )
instance FromJSON Team
instance ToJSON Team