{-# LANGUAGE EmptyDataDecls #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StandaloneDeriving #-} module Model ( module Model , module Model.Types , module Cron.Types ) where import ClassyPrelude.Yesod import Database.Persist.Quasi -- import Data.Time -- import Data.ByteString import Model.Types import Cron.Types import Data.Aeson (Value) import Data.Aeson.TH (deriveJSON, defaultOptions) import Data.CaseInsensitive (CI) import Data.CaseInsensitive.Instances () import Utils.Message (MessageClass) import Settings.Cluster (ClusterSettingsKey) -- You can define all of your database entities in the entities file. -- You can find more information on persistent and how to declare entities -- at: -- http://www.yesodweb.com/book/persistent/ share [mkPersist sqlSettings, mkDeleteCascade sqlSettings, mkMigrate "migrateAll'", mkSave "currentModel"] $(persistFileWith lowerCaseSettings "models") -- (Eq Course) is impossible so we derive it for the Uniqueness Constraint only deriving instance Eq (Unique Course) data PWEntry = PWEntry { pwUser :: User , pwHash :: Text } deriving (Show) $(deriveJSON defaultOptions ''PWEntry) submissionRatingDone :: Submission -> Bool submissionRatingDone Submission{..} = isJust submissionRatingTime