module Data.Aviation.Casr.Logbook.Types.AircraftFlight(
AircraftFlight(..)
, HasAircraftFlight(..)
, icusonlyflight
, noif_icusonlyflight
, dualonlyflight
, noif_dualonlyflight
, commandonlyflight
, noif_commandonlyflight
) where
import Control.Category((.))
import Control.Lens(makeClassy)
import Data.Aviation.Casr.Logbook.Types.Aircraft(Aircraft, HasAircraft(aircraft))
import Data.Aviation.Casr.Logbook.Types.Command(Command(ICUS, Dual, InCommand))
import Data.Aviation.Casr.Logbook.Types.DayNight(DayNight, HasDayNight(dayNight))
import Data.Aviation.Casr.Logbook.Types.FlightPath(FlightPath, HasFlightPath(flightPath))
import Data.Aviation.Casr.Logbook.Types.Aviator(Aviator)
import Data.Aviation.Casr.Logbook.Types.TimeAmount(TimeAmount, zerotimeamount)
import Data.Eq(Eq)
import Data.Ord(Ord)
import Data.String(String)
import Prelude(Show)
data AircraftFlight =
AircraftFlight {
_aircraftflightname :: String
, _flightaircraft :: Aircraft
, _command :: Command
, _daynight :: DayNight
, _flightpath :: FlightPath
, _flightothercrew :: [Aviator]
, _instrumentflightTime :: TimeAmount
} deriving (Eq, Ord, Show)
makeClassy ''AircraftFlight
instance HasAircraft AircraftFlight where
aircraft =
flightaircraft . aircraft
instance HasDayNight AircraftFlight where
dayNight =
daynight . dayNight
instance HasFlightPath AircraftFlight where
flightPath =
flightpath . flightPath
icusonlyflight ::
String
-> Aircraft
-> Aviator
-> DayNight
-> FlightPath
-> TimeAmount
-> AircraftFlight
icusonlyflight n a v t p i =
AircraftFlight
n
a
(ICUS v)
t
p
[]
i
noif_icusonlyflight ::
String
-> Aircraft
-> Aviator
-> DayNight
-> FlightPath
-> AircraftFlight
noif_icusonlyflight n a v t p =
icusonlyflight
n
a
v
t
p
zerotimeamount
dualonlyflight ::
String
-> Aircraft
-> Aviator
-> DayNight
-> FlightPath
-> TimeAmount
-> AircraftFlight
dualonlyflight n a v t p i =
AircraftFlight
n
a
(Dual v)
t
p
[]
i
noif_dualonlyflight ::
String
-> Aircraft
-> Aviator
-> DayNight
-> FlightPath
-> AircraftFlight
noif_dualonlyflight n a v t p =
dualonlyflight
n
a
v
t
p
zerotimeamount
commandonlyflight ::
String
-> Aircraft
-> DayNight
-> FlightPath
-> TimeAmount
-> AircraftFlight
commandonlyflight n a t p i =
AircraftFlight
n
a
InCommand
t
p
[]
i
noif_commandonlyflight ::
String
-> Aircraft
-> DayNight
-> FlightPath
-> AircraftFlight
noif_commandonlyflight n a t p =
commandonlyflight
n
a
t
p
zerotimeamount