206 lines
5.6 KiB
Plaintext
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)
|