-- SPDX-FileCopyrightText: 2022 Gregor Kleen ,Steffen Jost -- -- SPDX-License-Identifier: AGPL-3.0-or-later Submission -- submission for marking by a CourseParticipant sheet SheetId ratingPoints Points Maybe -- "Just" does not mean done; not yet visible to participant ratingComment Text Maybe -- "Just" does not mean done; not yet visible to participant ratingBy UserId Maybe -- assigned corrector ratingAssigned UTCTime Maybe -- time when corrector was assigned ratingTime UTCTime Maybe -- "Just" here indicates done; marking is made visible to participant deriving Show Generic SubmissionEdit -- user uploads new version of their submission user UserId Maybe -- track id, important for group submissions time UTCTime submission SubmissionId OnDeleteCascade OnUpdateCascade deriving Generic SubmissionFile json -- files that are part of a submission submission SubmissionId OnDeleteCascade OnUpdateCascade title FilePath content FileContentReference Maybe modified UTCTime isUpdate Bool -- is this the file updated by a corrector (original will always be retained) isDeletion Bool -- only set if isUpdate is also set, but file was deleted by corrector UniqueSubmissionFile submission title isUpdate deriving Eq Ord Read Show Generic SubmissionUser -- which submission belongs to whom user UserId submission SubmissionId OnDeleteCascade OnUpdateCascade UniqueSubmissionUser user submission -- multiple users may share same submission, in case of (ad-hoc) submission groups deriving Generic SubmissionGroup -- pre-defined submission groups; some courses only allow pre-defined submission groups course CourseId OnDeleteCascade OnUpdateCascade name SubmissionGroupName UniqueSubmissionGroup course name deriving Generic SubmissionGroupUser -- Registered submission groups, just for checking upon submission, but independent of actual SubmissionUser submissionGroup SubmissionGroupId user UserId UniqueSubmissionGroupUser submissionGroup user deriving Eq Ord Show Generic