-- Description of all primary schools managed by uni2work -- Each school must have a unique human-readable shorthand which is used as database row key School json name (CI Text) shorthand (CI Text) -- SchoolKey :: SchoolShorthand -> SchoolId examMinimumRegisterBeforeStart NominalDiffTime Maybe examMinimumRegisterDuration NominalDiffTime Maybe examRequireModeForRegistration Bool default=false examDiscouragedModes ExamModeDNF examCloseMode ExamCloseMode default='separate' UniqueSchool name UniqueSchoolShorthand shorthand -- required for Normalisation of CI Text Primary shorthand -- newtype Key School = SchoolKey { unSchoolKey :: SchoolShorthand } deriving Ord Eq Show Generic SchoolLdap school SchoolId Maybe orgUnit (CI Text) UniqueOrgUnit orgUnit SchoolTerms school SchoolId terms StudyTermsId UniqueSchoolTerms school terms