feat(prisma): add user and problem relations to Submission model

This commit is contained in:
cfngc4594 2025-04-10 22:24:40 +08:00
parent 895c3f779d
commit 7dbf06b99f

View File

@ -32,6 +32,7 @@ model User {
role Role @default(GUEST) role Role @default(GUEST)
problems Problem[] problems Problem[]
Submission Submission[]
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
@ -53,11 +54,11 @@ model Problem {
published Boolean @default(false) published Boolean @default(false)
userId String userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade) user User @relation(fields: [userId], references: [id], onDelete: Cascade)
templates Template[]
testcases Testcase[]
timeLimit Int @default(1000) timeLimit Int @default(1000)
memoryLimit Int @default(128) memoryLimit Int @default(128)
templates Template[]
testcases Testcase[]
Submission Submission[]
@@index([userId]) @@index([userId])
@@index([difficulty]) @@index([difficulty])
@ -110,23 +111,38 @@ model Template {
@@id([problemId, language]) @@id([problemId, language])
} }
enum ExitCode { enum Status {
SE // System Error PD // PENDING
CS // Compilation Success QD // QUEUED
CP // COMPILING
CE // Compilation Error CE // Compilation Error
CS // Compilation Success
RU // RUNNING
TLE // Time Limit Exceeded TLE // Time Limit Exceeded
MLE // Memory Limit Exceeded MLE // Memory Limit Exceeded
RE // Runtime Error RE // Runtime Error
AC // Accepted AC // Accepted
WA // Wrong Answer WA // Wrong Answer
SE // System Error
} }
model JudgeResult { model Submission {
id String @id @default(cuid()) id String @id @default(cuid())
output String language EditorLanguage
exitCode ExitCode code String
status Status
message String?
executionTime Int? executionTime Int?
memoryUsage Int? memoryUsage Int?
userId String
problemId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
problem Problem @relation(fields: [problemId], references: [id], onDelete: Cascade)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
} }
model Testcase { model Testcase {