{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE TemplateHaskell #-} module Data.Aviation.Casr.Logbook.Meta.AircraftFlightMeta( AircraftFlightMeta(AircraftFlightMeta) , HasAircraftFlightMeta(..) ) where import Control.Lens(makeClassy) import Data.Aviation.Casr.Logbook.Meta.AircraftFlightExpense import Data.Aviation.Casr.Logbook.Meta.Image import Data.Aviation.Casr.Logbook.Meta.Passenger import Data.Aviation.Casr.Logbook.Meta.TrackLog import Data.Aviation.Casr.Logbook.Meta.Video import Data.Aviation.Casr.Logbook.Meta.Visualisation import Data.Eq(Eq) import Data.Ord(Ord) import Prelude(Show) import Data.Monoid import Data.Semigroup data AircraftFlightMeta = AircraftFlightMeta { AircraftFlightMeta -> [TrackLog] _tracklogs :: [TrackLog] , AircraftFlightMeta -> [Visualisation] _visualisations :: [Visualisation] , AircraftFlightMeta -> [Image] _images :: [Image] , AircraftFlightMeta -> [Video] _videos :: [Video] , AircraftFlightMeta -> [AircraftFlightExpense] _expenses :: [AircraftFlightExpense] , AircraftFlightMeta -> [Passenger] _pax :: [Passenger] } deriving (AircraftFlightMeta -> AircraftFlightMeta -> Bool (AircraftFlightMeta -> AircraftFlightMeta -> Bool) -> (AircraftFlightMeta -> AircraftFlightMeta -> Bool) -> Eq AircraftFlightMeta forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: AircraftFlightMeta -> AircraftFlightMeta -> Bool == :: AircraftFlightMeta -> AircraftFlightMeta -> Bool $c/= :: AircraftFlightMeta -> AircraftFlightMeta -> Bool /= :: AircraftFlightMeta -> AircraftFlightMeta -> Bool Eq, Eq AircraftFlightMeta Eq AircraftFlightMeta => (AircraftFlightMeta -> AircraftFlightMeta -> Ordering) -> (AircraftFlightMeta -> AircraftFlightMeta -> Bool) -> (AircraftFlightMeta -> AircraftFlightMeta -> Bool) -> (AircraftFlightMeta -> AircraftFlightMeta -> Bool) -> (AircraftFlightMeta -> AircraftFlightMeta -> Bool) -> (AircraftFlightMeta -> AircraftFlightMeta -> AircraftFlightMeta) -> (AircraftFlightMeta -> AircraftFlightMeta -> AircraftFlightMeta) -> Ord AircraftFlightMeta AircraftFlightMeta -> AircraftFlightMeta -> Bool AircraftFlightMeta -> AircraftFlightMeta -> Ordering AircraftFlightMeta -> AircraftFlightMeta -> AircraftFlightMeta forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a $ccompare :: AircraftFlightMeta -> AircraftFlightMeta -> Ordering compare :: AircraftFlightMeta -> AircraftFlightMeta -> Ordering $c< :: AircraftFlightMeta -> AircraftFlightMeta -> Bool < :: AircraftFlightMeta -> AircraftFlightMeta -> Bool $c<= :: AircraftFlightMeta -> AircraftFlightMeta -> Bool <= :: AircraftFlightMeta -> AircraftFlightMeta -> Bool $c> :: AircraftFlightMeta -> AircraftFlightMeta -> Bool > :: AircraftFlightMeta -> AircraftFlightMeta -> Bool $c>= :: AircraftFlightMeta -> AircraftFlightMeta -> Bool >= :: AircraftFlightMeta -> AircraftFlightMeta -> Bool $cmax :: AircraftFlightMeta -> AircraftFlightMeta -> AircraftFlightMeta max :: AircraftFlightMeta -> AircraftFlightMeta -> AircraftFlightMeta $cmin :: AircraftFlightMeta -> AircraftFlightMeta -> AircraftFlightMeta min :: AircraftFlightMeta -> AircraftFlightMeta -> AircraftFlightMeta Ord, Int -> AircraftFlightMeta -> ShowS [AircraftFlightMeta] -> ShowS AircraftFlightMeta -> String (Int -> AircraftFlightMeta -> ShowS) -> (AircraftFlightMeta -> String) -> ([AircraftFlightMeta] -> ShowS) -> Show AircraftFlightMeta forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> AircraftFlightMeta -> ShowS showsPrec :: Int -> AircraftFlightMeta -> ShowS $cshow :: AircraftFlightMeta -> String show :: AircraftFlightMeta -> String $cshowList :: [AircraftFlightMeta] -> ShowS showList :: [AircraftFlightMeta] -> ShowS Show) makeClassy '' AircraftFlightMeta instance Semigroup AircraftFlightMeta where AircraftFlightMeta [TrackLog] t1 [Visualisation] s1 [Image] i1 [Video] v1 [AircraftFlightExpense] e1 [Passenger] p1 <> :: AircraftFlightMeta -> AircraftFlightMeta -> AircraftFlightMeta <> AircraftFlightMeta [TrackLog] t2 [Visualisation] s2 [Image] i2 [Video] v2 [AircraftFlightExpense] e2 [Passenger] p2 = [TrackLog] -> [Visualisation] -> [Image] -> [Video] -> [AircraftFlightExpense] -> [Passenger] -> AircraftFlightMeta AircraftFlightMeta ([TrackLog] t1 [TrackLog] -> [TrackLog] -> [TrackLog] forall a. Semigroup a => a -> a -> a <> [TrackLog] t2) ([Visualisation] s1 [Visualisation] -> [Visualisation] -> [Visualisation] forall a. Semigroup a => a -> a -> a <> [Visualisation] s2) ([Image] i1 [Image] -> [Image] -> [Image] forall a. Semigroup a => a -> a -> a <> [Image] i2) ([Video] v1 [Video] -> [Video] -> [Video] forall a. Semigroup a => a -> a -> a <> [Video] v2) ([AircraftFlightExpense] e1 [AircraftFlightExpense] -> [AircraftFlightExpense] -> [AircraftFlightExpense] forall a. Semigroup a => a -> a -> a <> [AircraftFlightExpense] e2) ([Passenger] p1 [Passenger] -> [Passenger] -> [Passenger] forall a. Semigroup a => a -> a -> a <> [Passenger] p2) instance Monoid AircraftFlightMeta where mempty :: AircraftFlightMeta mempty = [TrackLog] -> [Visualisation] -> [Image] -> [Video] -> [AircraftFlightExpense] -> [Passenger] -> AircraftFlightMeta AircraftFlightMeta [TrackLog] forall a. Monoid a => a mempty [Visualisation] forall a. Monoid a => a mempty [Image] forall a. Monoid a => a mempty [Video] forall a. Monoid a => a mempty [AircraftFlightExpense] forall a. Monoid a => a mempty [Passenger] forall a. Monoid a => a mempty