Implement local browser caching for shared groups and UI improvements
All checks were successful
Automated Container Build / build-and-push (push) Successful in 1m10s

This commit is contained in:
Elijah 2026-07-10 16:01:22 -07:00
parent 42ed0d275b
commit 7af0935657
37 changed files with 6141 additions and 411 deletions

View file

@ -14,8 +14,9 @@ model Class {
sortOrder Int @default(0)
createdAt DateTime @default(now())
decks Deck[]
quizSets QuizSet[]
decks Deck[]
quizSets QuizSet[]
materialGroups MaterialGroup[]
}
model Deck {
@ -27,6 +28,8 @@ model Deck {
createdAt DateTime @default(now())
class Class @relation(fields: [classId], references: [id], onDelete: Cascade)
groupId String?
group MaterialGroup? @relation(fields: [groupId], references: [id], onDelete: SetNull)
cards Flashcard[]
shareLink ShareLink?
progress StudyProgress[]
@ -51,6 +54,8 @@ model QuizSet {
createdAt DateTime @default(now())
class Class @relation(fields: [classId], references: [id], onDelete: Cascade)
groupId String?
group MaterialGroup? @relation(fields: [groupId], references: [id], onDelete: SetNull)
questions Question[]
attempts QuizAttempt[]
shareLink ShareLink?
@ -113,13 +118,15 @@ model QuizAttempt {
model ShareLink {
id String @id @default(uuid())
targetType String // "DECK" | "QUIZ"
targetType String // "DECK" | "QUIZ" | "GROUP"
deckId String? @unique
quizSetId String? @unique
groupId String? @unique
createdAt DateTime @default(now())
deck Deck? @relation(fields: [deckId], references: [id], onDelete: Cascade)
quizSet QuizSet? @relation(fields: [quizSetId], references: [id], onDelete: Cascade)
deck Deck? @relation(fields: [deckId], references: [id], onDelete: Cascade)
quizSet QuizSet? @relation(fields: [quizSetId], references: [id], onDelete: Cascade)
group MaterialGroup? @relation(fields: [groupId], references: [id], onDelete: Cascade)
}
model AuthSecurity {
@ -133,3 +140,17 @@ model Setting {
key String @id
value String
}
model MaterialGroup {
id String @id @default(uuid())
classId String
name String
type String // "DECK" | "QUIZ"
sortOrder Int @default(0)
createdAt DateTime @default(now())
class Class @relation(fields: [classId], references: [id], onDelete: Cascade)
decks Deck[]
quizSets QuizSet[]
shareLink ShareLink?
}