Working Database setupgit add .

This commit is contained in:
2025-12-22 00:38:30 -06:00
commit 24dc4090c0
21 changed files with 1955 additions and 0 deletions

80
prisma/schema.prisma Normal file
View File

@@ -0,0 +1,80 @@
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
}
model User {
id String @id @default(uuid())
username String @unique
password String
createdAt DateTime @default(now())
classes Class[]
fetches Fetch[]
finalGrades FinalGrade[]
}
model Class {
id String @id @default(uuid())
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
className String
teacher String
period String
category String
createdAt DateTime @default(now())
assignments Assignment[]
finalGrades FinalGrade[]
@@unique([userId, category, className])
@@index([userId])
}
model Assignment {
id String @id @default(uuid())
classId String
class Class @relation(fields: [classId], references: [id], onDelete: Cascade)
name String
dueDate String
score String
attempts String
isMajorGrade Boolean
createdAt DateTime @default(now())
@@index([classId])
}
model FinalGrade {
id String @id @default(uuid())
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
classId String
class Class @relation(fields: [classId], references: [id], onDelete: Cascade)
grade String // The overall grade (e.g., "95.5%", "A", etc.)
updatedAt DateTime @default(now()) @updatedAt
@@unique([userId, classId]) // One final grade per user per class
@@index([userId])
@@index([classId])
}
model Fetch {
id String @id @default(uuid())
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
timestamp DateTime @default(now())
success Boolean @default(true)
classCount Int @default(0)
@@index([userId])
}