-- 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' sheetAuthorshipStatementMode SchoolAuthorshipStatementMode default='optional' sheetAuthorshipStatementDefinition AuthorshipStatementDefinitionId Maybe sheetAuthorshipStatementAllowOther Bool default=true sheetExamAuthorshipStatementMode SchoolAuthorshipStatementMode default='optional' sheetExamAuthorshipStatementDefinition AuthorshipStatementDefinitionId Maybe sheetExamAuthorshipStatementAllowOther Bool default=true 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 deriving Generic SchoolTerms school SchoolId terms StudyTermsId UniqueSchoolTerms school terms deriving Generic