{-# LANGUAGE EmptyDataDecls #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE RecordWildCards #-} module Model ( module Model , module Model.Types ) where import ClassyPrelude.Yesod import Database.Persist.Quasi import Database.Persist.Postgresql (migrateEnableExtension) import Database.Persist.Sql (Migration) -- import Data.Time -- import Data.ByteString import Model.Types import Data.Aeson.TH import Data.CaseInsensitive (CI) -- 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'"] $(persistFileWith lowerCaseSettings "models") migrateAll :: Migration migrateAll = do migrateEnableExtension "citext" migrateAll' data PWEntry = PWEntry { pwUser :: User , pwHash :: Text } deriving (Show) $(deriveJSON defaultOptions ''PWEntry) submissionRatingDone :: Submission -> Bool submissionRatingDone Submission{..} = isJust submissionRatingPoints