34 lines
1.0 KiB
Haskell
34 lines
1.0 KiB
Haskell
{-# LANGUAGE UndecidableInstances, DerivingStrategies #-}
|
|
module Lib where
|
|
|
|
import Control.Monad.IO.Class (MonadIO)
|
|
import Database.Persist
|
|
import Database.Persist.Sql (SqlReadT)
|
|
import Database.Esqueleto (SqlExpr, SqlQuery, from,
|
|
val, (<#), insertSelect, (<&>), (^.))
|
|
import Database.Esqueleto.Internal.Language (Insertion)
|
|
import Database.Persist.TH (mkDeleteCascade,
|
|
mkMigrate, mkPersist,
|
|
persistLowerCase, share,
|
|
sqlSettings)
|
|
|
|
share [ mkPersist sqlSettings
|
|
, mkDeleteCascade sqlSettings
|
|
, mkMigrate "migrateAll"] [persistLowerCase|
|
|
Person
|
|
name String
|
|
age Int Maybe
|
|
born Int Maybe
|
|
deriving Eq Show
|
|
BlogPost
|
|
title String
|
|
authorId PersonId
|
|
deriving Eq Show
|
|
Follow
|
|
follower PersonId
|
|
followed PersonId
|
|
deriving Eq Show
|
|
|]
|
|
|
|
|