Implement Specials feature, Admin UI enhancements, and Database Rebuild tool
This commit is contained in:
@@ -19,6 +19,7 @@ model Song {
|
||||
createdAt DateTime @default(now())
|
||||
puzzles DailyPuzzle[]
|
||||
genres Genre[]
|
||||
specials Special[]
|
||||
}
|
||||
|
||||
model Genre {
|
||||
@@ -28,6 +29,16 @@ model Genre {
|
||||
dailyPuzzles DailyPuzzle[]
|
||||
}
|
||||
|
||||
model Special {
|
||||
id Int @id @default(autoincrement())
|
||||
name String @unique
|
||||
maxAttempts Int @default(7)
|
||||
unlockSteps String // JSON array: "[2,4,7,11,16,30,60]"
|
||||
createdAt DateTime @default(now())
|
||||
songs Song[]
|
||||
dailyPuzzles DailyPuzzle[]
|
||||
}
|
||||
|
||||
model DailyPuzzle {
|
||||
id Int @id @default(autoincrement())
|
||||
date String // Format: YYYY-MM-DD
|
||||
@@ -35,6 +46,8 @@ model DailyPuzzle {
|
||||
song Song @relation(fields: [songId], references: [id])
|
||||
genreId Int?
|
||||
genre Genre? @relation(fields: [genreId], references: [id])
|
||||
specialId Int?
|
||||
special Special? @relation(fields: [specialId], references: [id])
|
||||
|
||||
@@unique([date, genreId]) // Unique puzzle per date per genre (null genreId = global puzzle)
|
||||
@@unique([date, genreId, specialId])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user