{-# LANGUAGE TemplateHaskell #-}
module Strive.Types.Gear
( GearDetailed (..),
GearSummary (..),
)
where
import Data.Aeson.TH (deriveFromJSON)
import Data.Text (Text)
import Strive.Enums (FrameType, ResourceState)
import Strive.Internal.TH (options)
data GearDetailed = GearDetailed
{ GearDetailed -> Text
gearDetailed_brandName :: Text,
GearDetailed -> Text
gearDetailed_description :: Text,
GearDetailed -> Double
gearDetailed_distance :: Double,
GearDetailed -> Maybe FrameType
gearDetailed_frameType :: Maybe FrameType,
GearDetailed -> Text
gearDetailed_id :: Text,
GearDetailed -> Text
gearDetailed_modelName :: Text,
GearDetailed -> Text
gearDetailed_name :: Text,
GearDetailed -> Bool
gearDetailed_primary :: Bool,
GearDetailed -> ResourceState
gearDetailed_resourceState :: ResourceState
}
deriving (Int -> GearDetailed -> ShowS
[GearDetailed] -> ShowS
GearDetailed -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GearDetailed] -> ShowS
$cshowList :: [GearDetailed] -> ShowS
show :: GearDetailed -> String
$cshow :: GearDetailed -> String
showsPrec :: Int -> GearDetailed -> ShowS
$cshowsPrec :: Int -> GearDetailed -> ShowS
Show)
$(deriveFromJSON options ''GearDetailed)
data GearSummary = GearSummary
{ GearSummary -> Double
gearSummary_distance :: Double,
GearSummary -> Text
gearSummary_id :: Text,
GearSummary -> Text
gearSummary_name :: Text,
GearSummary -> Bool
gearSummary_primary :: Bool,
GearSummary -> ResourceState
gearSummary_resourceState :: ResourceState
}
deriving (Int -> GearSummary -> ShowS
[GearSummary] -> ShowS
GearSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GearSummary] -> ShowS
$cshowList :: [GearSummary] -> ShowS
show :: GearSummary -> String
$cshow :: GearSummary -> String
showsPrec :: Int -> GearSummary -> ShowS
$cshowsPrec :: Int -> GearSummary -> ShowS
Show)
$(deriveFromJSON options ''GearSummary)