chore(lms): revise db model after discussion

This commit is contained in:
Steffen Jost 2022-02-15 12:46:20 +01:00
parent 944ef46d84
commit aa73359893
2 changed files with 37 additions and 12 deletions

View File

@ -1,17 +1,28 @@
Qualification Qualification
school SchoolId school SchoolId --TODO: Ansprechpartner der Schule in Briefe erwähnen
name (CI Text)
shorthand (CI Text) shorthand (CI Text)
name (CI Text)
description StoredMarkup Maybe -- user-defined large Html, ought to contain full description description StoredMarkup Maybe -- user-defined large Html, ought to contain full description
validDuration CalendarDiffDays Maybe -- qualification is valid for this time validDuration Word Maybe -- qualification is valid for this number of months
refreshWithin CalendarDiffDays Maybe -- refresher is scheduled within this duration before expiry auditDuration Word Maybe -- number of month to keep audit log
refreshInvitation StoredMarkup Maybe -- email/letter to send refreshWithin CalendarDiffDays Maybe -- refresher is scheduled within this number of month before expiry
expiryNotification StoredMarkup Maybe -- refreshInvitation StoredMarkup -- fest verdrahtet I18N-MSGs, nur Anzeige auf Webseite
UniqueSchoolName name shorthand -- must be unique per school and name -- expiryNotification StoredMarkup Maybe
elearningOnly Bool -- successful E-learing automatically increases validity
UniqueSchoolShort school shorthand -- must be unique per school and shorthand UniqueSchoolShort school shorthand -- must be unique per school and shorthand
-- to be expanded later UniqueSchoolName school name -- must be unique per school and name
deriving Generic 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 QualificationEdit
user User user User
time UTCTime time UTCTime
@ -19,22 +30,30 @@ QualificationEdit
deriving Generic deriving Generic
-- LMS Interface Tables, need regular processing by background jobs -- LMS Interface Tables, need regular processing by background jobs
-- Logging?
LmsUser LmsUser
qualification QualificationId qualification QualificationId
user UserId user UserId
ident LmsIdent ident LmsIdent
pin Text pin Text
resetPin Bool resetPin Bool
delete Bool deleted Bool
started UTCTime started UTCTime Maybe
ended UTCTime Maybe
UniqueLmsUser qualification ident UniqueLmsUser qualification ident
deriving Generic deriving Generic
LmsAudit
qualifaction QualifactionId
ident LmsIdent
lastSeen UTCTime
notificationType LmsNotification
LmsUserlist LmsUserlist
qualification QualificationId qualification QualificationId
ident LmsIdent ident LmsIdent
failed Bool failed Bool
timestamp UTCTime default=now()
UniqueLmsUserlist qualification ident UniqueLmsUserlist qualification ident
deriving Generic deriving Generic
@ -42,6 +61,7 @@ LmsUserlist
LmsResult LmsResult
qualification QualificationId qualification QualificationId
ident LmsIdent ident LmsIdent
success UTCTime success Day
timestamp UTCTime default=now()
UniqueLmsResult qualification ident UniqueLmsResult qualification ident
deriving Generic deriving Generic

View File

@ -11,3 +11,8 @@ import Import.NoModel
type LmsIdent = Text type LmsIdent = Text
data LmsNotfication = Blocked | Successs | Alive
deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic, Typeable)
deriving (Universe, Finite, NFData)