feat(server): add Program and Award database models

- Add Program and Award tables to Prisma schema
- Update program-config.service to support database with JSON fallback
- Update ProgramCard.vue display logic for dynamic teamName/performer
- Add seed script to import data from JSON config

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
empty
2026-02-03 22:26:47 +08:00
parent b5fa4c7086
commit 406a5afa33
5 changed files with 374 additions and 49 deletions

View File

@@ -11,7 +11,6 @@ datasource db {
model User {
id String @id @default(cuid())
name String @db.VarChar(100)
department String @db.VarChar(100)
avatar String? @db.VarChar(512)
birthYear Int? @map("birth_year")
zodiac String? @db.VarChar(20)
@@ -93,6 +92,37 @@ model DrawResult {
@@map("draw_results")
}
// Programs for voting
model Program {
id String @id @default(cuid())
name String @db.VarChar(100)
teamName String @default("") @map("team_name") @db.VarChar(100)
performer String @default("") @db.VarChar(200)
order Int @default(0)
remark String? @db.Text
isActive Boolean @default(true) @map("is_active")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
@@index([order])
@@map("programs")
}
// Awards for voting
model Award {
id String @id @default(cuid())
name String @db.VarChar(100)
icon String @db.VarChar(20)
order Int @default(0)
remark String? @db.Text
isActive Boolean @default(true) @map("is_active")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
@@index([order])
@@map("awards")
}
// Draw sessions
model DrawSession {
id String @id @default(cuid())