This repository has been archived on 2024-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
fradrive-old/models

206 lines
5.6 KiB
Plaintext

User
plugin Text
ident Text
matrikelnummer Text Maybe
email Text
displayName Text
UniqueAuthentication plugin ident
UserAdmin
user UserId
school SchoolId
UserLecturer
user UserId
school SchoolId
UniqueSchoolLecturer school user
StudyFeatures
user UserId
degree StudyDegreeId
field StudyTermsId
type StudyFieldType
semester Int
UniqueUserSubject user degree field
StudyDegree
key Int
shorthand Text Maybe
name Text Maybe
Primary key
StudyTerms
key Int
shorthand Text Maybe
name Text Maybe
Primary key
Term json
name TermIdentifier
start Day
end Day
holidays [Day]
lectureStart Day
lectureEnd Day
active Bool
Primary name
deriving Show
School json
name Text
shorthand Text
UniqueSchool name
deriving Eq
Degree json
name Text
schoolId SchoolId
UniqueDegree name schoolId
deriving Eq
DegreeCourse json
degreeId DegreeId
courseId CourseId
UniqueDegreeCourse degreeId courseId
Course
name Text
description Html Maybe
linkExternal Text Maybe
shorthand Text
termId TermId
schoolId SchoolId
capacity Int Maybe
created UTCTime
changed UTCTime
createdBy UserId
changedBy UserId
hasRegistration Bool -- canRegisterNow = hasRegistration && maybe False (<= currentTime) registerFrom && maybe True (>= currentTime) registerTo
registerFrom UTCTime Maybe
registerTo UTCTime Maybe
CourseTermShort termId shorthand
Lecturer
userId UserId
courseId CourseId
UniqueLecturer userId courseId
Corrector
userId UserId
courseId CourseId
load Load
-- SELECT submissionID FROM Tutorial, TutorialUser, Submission, Sheet
-- WHERE ( tutorialTutor = correctorUserId
-- && tutorialCourse = correctorCourseId
-- && tutorialUserTutorial = tutorialId
-- && submissionUser = tutorialUserUser
-- && sheetId = submissionSheetId
-- && sheetCourse = correctorCourseId
-- )
UniqueCorrector userId courseId
CourseParticipant
courseId CourseId
userId UserId
registration UTCTime
UniqueCourseParticipant courseId userId
Sheet
courseId CourseId
name Text
type SheetType
markingText Text Maybe
activeFrom UTCTime
activeTo UTCTime
hintFrom UTCTime Maybe
solutionFrom UTCTime Maybe
created UTCTime
changed UTCTime
createdBy UserId
changedBy UserId
SheetFile
sheetId SheetId
fileId FileId
type SheetFileType
UniqueSheetFile fileId sheetId type
File
title FilePath
content ByteString Maybe -- Nothing iff this is a directory
modified UTCTime
deriving Show Eq
Submission
sheetId SheetId
ratingPoints Points Maybe
ratingComment Text Maybe
ratingBy UserId Maybe
ratingTime UTCTime Maybe
created UTCTime
changed UTCTime
createdBy UserId
changedBy UserId
deriving Show
SubmissionFile
submissionId SubmissionId
fileId FileId
isUpdate Bool
isDeletion Bool
UniqueSubmissionFile fileId submissionId isUpdate
deriving Show
SubmissionUser
userId UserId
submissionId SubmissionId
UniqueSubmissionUser userId submissionId
SubmissionGroup
courseId CourseId
name Text
created UTCTime
changed UTCTime
createdBy UserId
changedBy UserId
SubmissionGroupUser
submissionGroupId SubmissionGroupId
userId UserId
UniqueSubmissionGroupUser submissionGroupId userId
Tutorial json
name Text
tutor UserId
course CourseId -- ?
TutorialUser
userId UserId
tutorialId TutorialId
UniqueTutorialUser userId tutorialId
Booking
termId TermId
begin UTCTime
end UTCTime
weekly Bool
exceptions [Day] -- only if weekly, begin in exception
created UTCTime
changed UTCTime
createdBy UserId
changedBy UserId
bookedFor RoomForId
room RoomId
Room
name Text
capacity Int Maybe
building Text Maybe
-- BookingRoom
-- subject RoomForId
-- roomId RoomId
-- bookingId BookingId
-- UniqueRoomCourse subject roomId bookingId
+RoomFor
courseId CourseId
tutorialId TutorialId
examId ExamId
-- data RoomFor = RoomForCourseIdSum CourseId | RoomForTutorialIdSum TutorialId ...
Exam
courseId CourseId
name Text
description Text
begin UTCTime
end UTCTime
registrationBegin UTCTime
registrationEnd UTCTime
deregistrationEnd UTCTime
ratingVisible Bool
statisticsVisible Bool
created UTCTime
changed UTCTime
createdBy UserId
changedBy UserId
ExamUser
userId UserId
examId ExamId
-- CONTINUE HERE: Inlcude rating in this table or seperatly?
UniqueExamUser userId examId
-- By default this file is used in Model.hs (which is imported by Foundation.hs)