{-# LANGUAGE TemplateHaskell #-}

-- | <http://strava.github.io/api/v3/comments/>
module Strive.Types.Comments
  ( CommentSummary (..)
  ) where

import Data.Aeson.TH (deriveFromJSON)
import Data.Text (Text)
import Data.Time.Clock (UTCTime)
import Strive.Enums (ResourceState)
import Strive.Internal.TH (options)
import Strive.Types.Athletes (AthleteSummary)

-- | <http://strava.github.io/api/v3/comments/#summary-and-detailed-representation-attributes>
data CommentSummary = CommentSummary
  { CommentSummary -> Integer
commentSummary_activityId    :: Integer
  , CommentSummary -> AthleteSummary
commentSummary_athlete       :: AthleteSummary
  , CommentSummary -> UTCTime
commentSummary_createdAt     :: UTCTime
  , CommentSummary -> Integer
commentSummary_id            :: Integer
  , CommentSummary -> ResourceState
commentSummary_resourceState :: ResourceState
  , CommentSummary -> Text
commentSummary_text          :: Text
  } deriving Int -> CommentSummary -> ShowS
[CommentSummary] -> ShowS
CommentSummary -> String
(Int -> CommentSummary -> ShowS)
-> (CommentSummary -> String)
-> ([CommentSummary] -> ShowS)
-> Show CommentSummary
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CommentSummary] -> ShowS
$cshowList :: [CommentSummary] -> ShowS
show :: CommentSummary -> String
$cshow :: CommentSummary -> String
showsPrec :: Int -> CommentSummary -> ShowS
$cshowsPrec :: Int -> CommentSummary -> ShowS
Show

$(deriveFromJSON options ''CommentSummary)