users-persistent-0.4.0.0: src/Web/Users/Persistent/Definitions.hs
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeSynonymInstances #-}
module Web.Users.Persistent.Definitions where
import Database.Persist.TH
import Data.Time.Clock
import Data.Typeable
import qualified Data.ByteString.Char8 as BSC
import qualified Data.Text as T
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Login
createdAt UTCTime
username T.Text
email T.Text
password T.Text
active Bool
more BSC.ByteString
UniqueUsername username
UniqueEmail email
deriving Show
deriving Eq
deriving Typeable
LoginToken
token T.Text
tokenType T.Text
createdAt UTCTime
validUntil UTCTime
owner LoginId
UniqueToken token
UniqueTypedToken token tokenType
deriving Show
deriving Eq
deriving Typeable
|]