{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TemplateHaskell #-} module Data.Aviation.Casr.Logbook.FlightPath( FlightPath(..) , directflightpath , directcircuit , pointsatdate ) where import Control.Lens(makeClassy) import Data.Aviation.Casr.Logbook.FlightPoint(FlightPoint, pointatdate) import Data.Eq(Eq) import Data.Functor((<$>)) import Data.Ord(Ord) import Data.String(String) import Data.Time(Day) import Prelude(Show) data FlightPath = FlightPath { _flightStart :: FlightPoint , _flightIntermediate :: [FlightPoint] , _flightEnd :: FlightPoint } deriving (Eq, Ord, Show) makeClassy ''FlightPath directflightpath :: FlightPoint -> FlightPoint -> FlightPath directflightpath x y = FlightPath x [] y directcircuit :: FlightPoint -> FlightPath directcircuit x = directflightpath x x pointsatdate :: String -> [String] -> String -> Day -> FlightPath pointsatdate x i y d = FlightPath (pointatdate x d) ((\s -> pointatdate s d) <$> i) (pointatdate y d)