Qualification school SchoolId --TODO: Ansprechpartner der Schule in Briefe erwähnen shorthand (CI Text) name (CI Text) description StoredMarkup Maybe -- user-defined large Html, ought to contain full description validDuration Word Maybe -- qualification is valid for this number of months auditDuration Word Maybe -- number of month to keep audit log refreshWithin CalendarDiffDays Maybe -- refresher is scheduled within this number of month before expiry elearningOnly Bool -- successful E-learing automatically increases validity -- refreshInvitation StoredMarkup -- hard-coded I18N-MSGs used instead, but displayed on qualification page -- expiryNotification StoredMarkup Maybe -- configurable user-profile-notifcations are used instead UniqueSchoolShort school shorthand -- must be unique per school and shorthand UniqueSchoolName school name -- must be unique per school and name deriving Generic QualificationEdit user User time UTCTime qualification QualificationId OnDeleteCascade OnUpdateCascade deriving Generic -- TODO: connect Qualification with Exams! QualificationUser user User qualification QualificationId validUntil UTCTime lastRefresh UTCTime -- lastRefresh > validUntil possible, if Qualification^elearningOnly == False firstHeld UTCTime -- first time the qualification was earned, should never change UniqueQualificationUser qualification user deriving Generic -- LMS Interface Tables, need regular processing by background jobs LmsUser qualification QualificationId user UserId ident LmsIdent pin Text resetPin Bool -- should the pin be reset? delete Bool -- should the ident be deleted? TODO: do we need this? started UTCTime Maybe submitted UTCTime Maybe -- ident was sent to LMS (should happen only once) ended UTCTime Maybe -- ident was deleted in LMS UniqueLmsUser qualification ident deriving Generic -- LmsUserlist stores LMS upload ofr later processing only LmsUserlist qualification QualificationId ident LmsIdent failed Bool timestamp UTCTime default=now() deriving Generic -- LmsUserlist stores LMS upload ofr later processing only LmsResult qualification QualificationId ident LmsIdent success Day timestamp UTCTime default=now() deriving Generic -- Logs all processed rows from LmsUserlist and LmsResult LmsAudit qualification QualificationId ident LmsIdent notificationType LmsNotification received UTCTime processed UTCTime default=now() deriving Generic