{-|
Module: Model.Types.Common
Description: Common types used by most @Model.Types.*@-Modules

Types used by multiple other @Model.Types.*@-Modules
-}
module Model.Types.Common
  ( module Model.Types.Common
  ) where

import Import.NoModel

import qualified Yesod.Auth.Util.PasswordStore as PWStore
  

type Count  = Sum Integer
type Points = Centi

type Email              = Text

type SchoolName         = CI Text
type SchoolShorthand    = CI Text
type CourseName         = CI Text
type CourseShorthand    = CI Text
type SheetName          = CI Text
type MaterialName       = CI Text
type UserEmail          = CI Email
type UserIdent          = CI Text
type TutorialName       = CI Text
type ExamName           = CI Text
type ExamPartName       = CI Text
type ExamOccurrenceName = CI Text

type PWHashAlgorithm = ByteString -> PWStore.Salt -> Int -> ByteString
type InstanceId      = UUID
type ClusterId       = UUID
type TokenId         = UUID
type TermCandidateIncidence = UUID
