chore(api): add collections related to exam creator (#61773)

This commit is contained in:
Shaun Hamilton
2025-08-12 08:36:39 +02:00
committed by GitHub
parent fdcaff632c
commit 8405f24a40
+43
View File
@@ -188,6 +188,22 @@ model ExamEnvironmentExam {
examAttempts ExamEnvironmentExamAttempt[]
}
/// A copy of `ExamEnvironmentExam` used as a staging collection for updates to the curriculum.
///
/// This collection schema must be kept in sync with `ExamEnvironmentExam`.
model ExamEnvironmentTempExam {
/// Globally unique exam id
id String @id @default(auto()) @map("_id") @db.ObjectId
/// All questions for a given exam
questionSets ExamEnvironmentQuestionSet[]
/// Configuration for exam metadata
config ExamEnvironmentConfig
/// ObjectIds for required challenges/blocks to take the exam
prerequisites String[] @db.ObjectId
/// If `deprecated`, the exam should no longer be considered for users
deprecated Boolean
}
/// A grouping of one or more questions of a given type
type ExamEnvironmentQuestionSet {
/// Unique question type id
@@ -546,3 +562,30 @@ enum ExamEnvironmentExamModerationStatus {
/// Attempt has yet to be moderated
Pending
}
/// Exam Creator application collection to store authZ users.
///
/// Currently, this is manually created in order to grant access to the application.
model ExamCreatorUser {
id String @id @default(auto()) @map("_id") @db.ObjectId
email String
/// Unique id from GitHub for an account.
///
/// Currently, this is unused. Consider removing.
github_id Int?
name String
picture String?
ExamCreatorSession ExamCreatorSession[]
}
/// Exam Creator application collection to store auth sessions.
model ExamCreatorSession {
id String @id @default(auto()) @map("_id") @db.ObjectId
user_id String @db.ObjectId
session_id String
/// Expiration date for record.
expires_at DateTime
ExamCreatorUser ExamCreatorUser @relation(fields: [user_id], references: [id])
}