{-# LANGUAGE TemplateHaskell #-} module Data.Aviation.Casr.Logbook.Meta.BriefingExpense( BriefingExpense(BriefingExpense) , HasBriefingExpense(..) , briefingCost ) where import Control.Lens(makeClassy, (^.)) import Data.Aviation.Casr.Logbook.Types.Briefing(HasBriefing, briefingTimeAmount) import Data.Aviation.Casr.Logbook.Types.TimeAmount(timeAmountBy10) import Data.Eq(Eq) import Data.Int(Int) import Data.Ord(Ord) import Data.String(String) import Prelude(Show, (*)) data BriefingExpense = BriefingExpense { _briefingexpenseperhour :: Int , _briefingexpensename :: String } deriving (Eq, Ord, Show) makeClassy ''BriefingExpense briefingCost :: HasBriefing s => s -> BriefingExpense -> Int briefingCost br (BriefingExpense perhour _) = let z = br ^. briefingTimeAmount in timeAmountBy10 z * perhour