{-# LANGUAGE DeriveGeneric #-}
module Buffet.Document.TemplateBuffet
( get
) where
import qualified Buffet.Document.TemplateDishes as TemplateDishes
import qualified Buffet.Document.TemplateTagGroups as TemplateTagGroups
import qualified Buffet.Ir.Ir as Ir
import qualified Buffet.Toolbox.TextTools as TextTools
import qualified Data.Aeson as Aeson
import qualified Data.Map.Strict as Map
import qualified GHC.Generics as Generics
import Prelude (Eq, Ord, Show)
data Buffet =
Buffet
{ Buffet -> [Dish]
dishes :: [TemplateDishes.Dish]
, Buffet -> Map TagKey [TagGroup]
tagGroups :: Map.Map Ir.TagKey [TemplateTagGroups.TagGroup]
}
deriving (Buffet -> Buffet -> Bool
(Buffet -> Buffet -> Bool)
-> (Buffet -> Buffet -> Bool) -> Eq Buffet
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Buffet -> Buffet -> Bool
$c/= :: Buffet -> Buffet -> Bool
== :: Buffet -> Buffet -> Bool
$c== :: Buffet -> Buffet -> Bool
Eq, (forall x. Buffet -> Rep Buffet x)
-> (forall x. Rep Buffet x -> Buffet) -> Generic Buffet
forall x. Rep Buffet x -> Buffet
forall x. Buffet -> Rep Buffet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Buffet x -> Buffet
$cfrom :: forall x. Buffet -> Rep Buffet x
Generics.Generic, Eq Buffet
Eq Buffet
-> (Buffet -> Buffet -> Ordering)
-> (Buffet -> Buffet -> Bool)
-> (Buffet -> Buffet -> Bool)
-> (Buffet -> Buffet -> Bool)
-> (Buffet -> Buffet -> Bool)
-> (Buffet -> Buffet -> Buffet)
-> (Buffet -> Buffet -> Buffet)
-> Ord Buffet
Buffet -> Buffet -> Bool
Buffet -> Buffet -> Ordering
Buffet -> Buffet -> Buffet
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
min :: Buffet -> Buffet -> Buffet
$cmin :: Buffet -> Buffet -> Buffet
max :: Buffet -> Buffet -> Buffet
$cmax :: Buffet -> Buffet -> Buffet
>= :: Buffet -> Buffet -> Bool
$c>= :: Buffet -> Buffet -> Bool
> :: Buffet -> Buffet -> Bool
$c> :: Buffet -> Buffet -> Bool
<= :: Buffet -> Buffet -> Bool
$c<= :: Buffet -> Buffet -> Bool
< :: Buffet -> Buffet -> Bool
$c< :: Buffet -> Buffet -> Bool
compare :: Buffet -> Buffet -> Ordering
$ccompare :: Buffet -> Buffet -> Ordering
$cp1Ord :: Eq Buffet
Ord, Int -> Buffet -> ShowS
[Buffet] -> ShowS
Buffet -> String
(Int -> Buffet -> ShowS)
-> (Buffet -> String) -> ([Buffet] -> ShowS) -> Show Buffet
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Buffet] -> ShowS
$cshowList :: [Buffet] -> ShowS
show :: Buffet -> String
$cshow :: Buffet -> String
showsPrec :: Int -> Buffet -> ShowS
$cshowsPrec :: Int -> Buffet -> ShowS
Show)
instance Aeson.ToJSON Buffet where
toJSON :: Buffet -> Value
toJSON = Options -> Buffet -> Value
forall a.
(Generic a, GToJSON' Value Zero (Rep a)) =>
Options -> a -> Value
Aeson.genericToJSON Options
TextTools.defaultJsonOptions
get :: Ir.Buffet -> Buffet
get :: Buffet -> Buffet
get Buffet
buffet =
Buffet :: [Dish] -> Map TagKey [TagGroup] -> Buffet
Buffet
{ dishes :: [Dish]
dishes = Buffet -> [Dish]
TemplateDishes.get Buffet
buffet
, tagGroups :: Map TagKey [TagGroup]
tagGroups = Buffet -> Map TagKey [TagGroup]
TemplateTagGroups.get Buffet
buffet
}