User
    ident Text
    password Text Maybe
    UniqueUser ident
    deriving Typeable
Email
    email Text
    userId UserId Maybe
    verkey Text Maybe
    UniqueEmail email    
Comment json -- Adding "json" causes ToJSON and FromJSON instances to be derived.
    message Text
    userId UserId Maybe
    deriving Eq
    deriving Show
--
-- above from Template, needs editing
--
Term json
    name        Text
    start       UTCTime
    end         UTCTime    
    UniqueTerm name
    deriving Eq
School json
    name Text 
    UniqueSchool name
    deriving Eq    
Course json
    name         Text
    owner        UserId    
    schoolId     SchoolId
    termId       TermId Maybe
    capacity     Int Maybe    
    created      UTCTime
    changed      UTCTime
    registerFrom UTCTime
    registerTo   UTCTime
Lecturer 
    userId      UserId
    courseId    CourseId
    UniqueLecturer userId courseId 
CourseParticipant
    userId        UserId
    courseId      CourseId
    registration  UTCTime
    UniqueCourseParticipant userId courseId 
Sheet
    courseId        CourseId
    name            Text
    sheetType       SheetType 
    maxPoints       Double Maybe
    requiredPoints  Double Maybe
    exerciseId      FileId Maybe
    hintId          FileId Maybe
    solutionId      FileId Maybe
    markingId       FIleID Maybe
    markingText     Text
    activeFrom      UTCTime
    activeTo        UTCTime
    hintFrom        UTCTime Maybe
    solutionFrom    UTCTime Maybe
    created         UTCTime
    changed         UTCTime
    createdBy       UserId
    changedBy       UserId    
File        
    name            Text
    content         ByteStream
Submission
    sheetId         SheetId
    fileId          FileId
    updateId        FileId  Maybe
    ratingBy        UserId  Maybe
    ratingPoints    Double  Maybe
    ratingComment   Text    Maybe 
    rated           UTCTime Maybe   
    created         UTCTime
    changed         UTCTime
    createdBy       UserId
    changedBy       UserId
SubmissionUser
    userId          UserId
    submissionId    SubmissionId
    UniqueSubmissionUser userId submissionId
SubmissionGroup
    courseId        CourseId
    name            Text
    created         UTCTime
    changed         UTCTime
    createdBy       UserId
    changedBy       UserId
SubmissionGroupUser
    solutionGroupId SolutionGroupId
    userId          UserId   
    UniqueSubmissionGroupUser solutionGroupId userId
--
Tutorial json
    name        Text
    tutor       UserId    
TutorialParticipant
    userId      UserId
    tutorialId  TutorialId
    UniqueTutorialParticipant userId tutorialId
-- Unclear how to model this correctly   
Room
    name        Text
    capacity    Int Maybe
    building    Text
RoomCourse
    roomId      RoomId
    courseId    CourseId
-- not unique, as a course might happen several times
RoomTutorial
    roomId      RoomId
    tutorialId  TutorialId
RoomExam 
    roomId      RoomId
    examId      ExamId
RoomBookingRecurring
    roomId      RoomId
    termId      termId
    start       TimeOfDay
    end         TimeOfDay
    day         Weekday
    created     UTCTime
    changed     UTCTime
RoomBooking
    roomId      RoomId
    begin       UTCTime
    end         UTCTime
    created     UTCTime
    changed     UTCTime


 -- By default this file is used in Model.hs (which is imported by Foundation.hs)
