module Data.Aviation.Casr.Logbook.Types.Exam(
Exam(..)
, HasExam(..)
, dayonlyexam
) where
import Control.Category((.))
import Control.Lens(makeClassy)
import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator, HasAviator(aviator))
import Data.Aviation.Casr.Logbook.Types.Time(Time, HasTime(time), dayonly)
import Data.Aviation.Casr.Logbook.Types.Location(Location, HasLocation(location))
import Data.Eq(Eq)
import Data.Int(Int)
import Data.Ord(Ord)
import Data.String(String)
import Data.Time(Day)
import Prelude(Show)
data Exam =
Exam {
_examName :: String
, _examLocation :: Location
, _examTime :: Time
, _examDelegate :: Aviator
, _examResult :: Int
, _examResultMaximum :: Int
} deriving (Eq, Ord, Show)
makeClassy ''Exam
instance HasLocation Exam where
location =
examLocation . location
instance HasTime Exam where
time =
examTime . time
instance HasAviator Exam where
aviator =
examDelegate . aviator
dayonlyexam ::
String
-> Location
-> Day
-> Aviator
-> Int
-> Int
-> Exam
dayonlyexam n l d =
Exam
n
l
(dayonly d)