module Data.Aviation.Casr.Logbook.Types.Briefing(
Briefing(..)
, HasBriefing(..)
) where
import Control.Category((.))
import Control.Lens(makeClassy)
import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator, HasAviator(aviator))
import Data.Aviation.Casr.Logbook.Types.Location(Location, HasLocation(location))
import Data.Aviation.Casr.Logbook.Types.Time(Time, HasTime(time))
import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount, HasTimeAmount(timeAmount))
import Data.Eq(Eq)
import Data.Ord(Ord)
import Data.String(String)
import Prelude(Show)
data Briefing =
Briefing {
_briefingName :: String
, _briefingLocation :: Location
, _briefingTime :: Time
, _briefer :: Aviator
, _briefingTimeAmount :: TimeAmount
} deriving (Eq, Ord, Show)
makeClassy ''Briefing
instance HasLocation Briefing where
location =
briefingLocation . location
instance HasTime Briefing where
time =
briefingTime . time
instance HasAviator Briefing where
aviator =
briefer . aviator
instance HasTimeAmount Briefing where
timeAmount =
briefingTimeAmount . timeAmount