{-# LANGUAGE DeriveFunctor #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module Model where import qualified ClassyPrelude.Yesod as CP import qualified Control.Monad.Combinators as PC (between) import qualified Data.Aeson as A import qualified Data.Aeson.KeyMap as KM import qualified Data.Aeson.Types as A (parseFail) import qualified Data.Attoparsec.Text as P import qualified Data.Time as TI (ParseTime) import qualified Data.Time.Clock.POSIX as TI (posixSecondsToUTCTime, POSIXTime) import qualified Data.Time.ISO8601 as TI (parseISO8601, formatISO8601Millis) import ClassyPrelude.Yesod hiding ((==.), (||.), on, Value, groupBy, exists, (>=.), (<=.)) import Control.Monad.Fail (MonadFail) import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT) import Control.Monad.Writer (tell) import Data.Char (isSpace) import Data.Either (fromRight) import Data.Foldable (foldl, foldl1, sequenceA_) import Data.List.NonEmpty (NonEmpty(..)) import Database.Esqueleto.Experimental import Database.Esqueleto.Internal.Internal (unsafeSqlFunction) import Pretty () import System.Directory (listDirectory) import Types import qualified Data.Map.Strict as MS import ModelCustom