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 -- refreshInvitation StoredMarkup -- fest verdrahtet I18N-MSGs, nur Anzeige auf Webseite -- expiryNotification StoredMarkup Maybe elearningOnly Bool -- successful E-learing automatically increases validity UniqueSchoolShort school shorthand -- must be unique per school and shorthand UniqueSchoolName school name -- must be unique per school and name deriving Generic -- Verknüpfung mit Exams fehlt only QualificationUser user User qualification QualficationId validUntil UTCTime firstHeld UTCTime -- timestamp qualification earned lastRefresh UTCTIme -- lastRefresh > validUntil possible, indicates E-Learning success, but needs more (e.g. an exam) UniqueQualificationUser qualification user QualificationEdit user User time UTCTime qualification QualificationId OnDeleteCascade OnUpdateCascade deriving Generic -- LMS Interface Tables, need regular processing by background jobs -- Logging? LmsUser qualification QualificationId user UserId ident LmsIdent pin Text resetPin Bool deleted Bool started UTCTime Maybe ended UTCTime Maybe UniqueLmsUser qualification ident deriving Generic LmsAudit qualifaction QualifactionId ident LmsIdent lastSeen UTCTime notificationType LmsNotification LmsUserlist qualification QualificationId ident LmsIdent failed Bool timestamp UTCTime default=now() UniqueLmsUserlist qualification ident deriving Generic -- QualificationId is redundant here; but known due to external upload LmsResult qualification QualificationId ident LmsIdent success Day timestamp UTCTime default=now() UniqueLmsResult qualification ident deriving Generic