fixed so the code compiles

This commit is contained in:
2026-07-11 11:27:43 -04:00
parent 02ac5f9593
commit 1f99268588
1183 changed files with 281990 additions and 813 deletions
+119
View File
@@ -0,0 +1,119 @@
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
enum Grade {
G3
G6
G9
}
enum Subject {
MATH
READING
WRITING
}
enum Difficulty {
EASY
MEDIUM
HARD
}
enum SessionStatus {
IN_PROGRESS
COMPLETED
ABANDONED
}
model User {
id String @id @default(cuid())
googleId String @unique
email String @unique
displayName String
username String @unique
avatarUrl String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sessions GameSession[]
leaderboardEntries LeaderboardEntry[]
matchResults MatchResult[]
}
model Question {
id String @id @default(cuid())
grade Grade
subject Subject
strand String
difficulty Difficulty
questionText String
options Json
correctAnswer String
explanation String?
createdAt DateTime @default(now())
answers UserAnswer[]
}
model GameSession {
id String @id @default(cuid())
userId String
grade Grade
subject Subject
status SessionStatus @default(IN_PROGRESS)
score Int @default(0)
totalQuestions Int
correctAnswers Int @default(0)
startedAt DateTime @default(now())
completedAt DateTime?
user User @relation(fields: [userId], references: [id])
answers UserAnswer[]
}
model UserAnswer {
id String @id @default(cuid())
sessionId String
questionId String
selectedAnswer String
isCorrect Boolean
timeSpentMs Int
answeredAt DateTime @default(now())
session GameSession @relation(fields: [sessionId], references: [id])
question Question @relation(fields: [questionId], references: [id])
}
model LeaderboardEntry {
id String @id @default(cuid())
userId String
grade Grade
elo Int @default(800)
bestTime Int?
gamesPlayed Int @default(0)
totalCorrect Int @default(0)
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id])
@@unique([userId, grade])
}
model MatchResult {
id String @id @default(cuid())
userId String
grade Grade
won Boolean
eloChange Int
eloAfter Int
timeSpentMs Int?
playedAt DateTime @default(now())
user User @relation(fields: [userId], references: [id])
}