{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE StandaloneDeriving #-}
module Exigo.Persistent.Schema
(
Student
, StudentId
, Submission
, SubmissionId
, LatePenalty
, LatePenaltyId
, savedMainModel
)
where
import Data.Aeson
import Data.Binary
import Data.Text (Text)
import Database.Persist.TH (
mkPersist
, mkSave
, persistFileWith
, share
, sqlSettings
)
import Database.Persist.Quasi
import Database.Persist.Class
import GHC.Generics
share [
mkSave "savedMainModel"
, mkPersist sqlSettings
]
$(persistFileWith lowerCaseSettings "config/exigo.persistentmodels")
instance Binary Student where
deriving instance Generic (Key Student)
instance Binary (Key Student) where
instance Binary Submission where
instance Binary LatePenalty where
instance FromJSON Student where
instance FromJSON Submission where
instance FromJSON LatePenalty where
instance ToJSON Student where
instance ToJSON Submission where
instance ToJSON LatePenalty where