{-# LANGUAGE TemplateHaskell #-} module Data.Aviation.Casr.Logbook.Meta.AircraftUsageExpense( AircraftUsageExpense(AircraftUsageExpense) , HasAircraftUsageExpense(..) , aircraftUsageCost ) where import Control.Lens(makeClassy, (^.)) import Data.Aviation.Casr.Logbook.Types.AircraftFlight(HasAircraftFlight, daynight) import Data.Aviation.Casr.Logbook.Types.TimeAmount(timeAmountBy10) import Data.Aviation.Casr.Logbook.Types.DayNight(totalDayNight) import Data.Eq(Eq) import Data.Int(Int) import Data.Ord(Ord) import Data.String(String) import Prelude(Show, (*)) data AircraftUsageExpense = AircraftUsageExpense { _aircraftusageexpenseperhour :: Int , _aircraftusageexpensename :: String } deriving (Eq, Ord, Show) makeClassy ''AircraftUsageExpense aircraftUsageCost :: HasAircraftFlight s => s -> AircraftUsageExpense -> Int aircraftUsageCost fl (AircraftUsageExpense perhour _) = let z = totalDayNight (fl ^. daynight) in timeAmountBy10 z * perhour