58 lines
1.7 KiB
Plaintext
58 lines
1.7 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "sqlite"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model DayGroup {
|
|
id String @id @default(cuid())
|
|
title String
|
|
order Int @default(0)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
tasks Task[]
|
|
}
|
|
|
|
model Task {
|
|
id String @id @default(cuid())
|
|
title String
|
|
descriptionMarkdown String
|
|
groupId String
|
|
order Int @default(0)
|
|
visible Boolean @default(true)
|
|
starterHtml String @default("")
|
|
starterCss String @default("")
|
|
starterJs String @default("")
|
|
referenceHtml String @default("")
|
|
referenceCss String @default("")
|
|
referenceJs String @default("")
|
|
expectedScreenshotPath String?
|
|
visualThreshold Float @default(0.85)
|
|
passingScore Float @default(0.8)
|
|
checksJson String @default("[]")
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
group DayGroup @relation(fields: [groupId], references: [id], onDelete: Cascade)
|
|
submissions Submission[]
|
|
}
|
|
|
|
model Submission {
|
|
id String @id @default(cuid())
|
|
taskId String
|
|
studentName String
|
|
studentKey String
|
|
html String
|
|
css String
|
|
js String
|
|
passed Boolean
|
|
score Float
|
|
resultJson String
|
|
createdAt DateTime @default(now())
|
|
task Task @relation(fields: [taskId], references: [id], onDelete: Cascade)
|
|
|
|
@@index([taskId, studentKey])
|
|
}
|