feat: refactor agent manager, media library, and player UX

- Split admin users page into player/tier-1/tier-2 tabs with affiliation labels and context-specific create dialogs

- Add media library with uploaded_files migration, list/delete unused files API, and admin nav route

- Enforce player username format (alphanumeric 3-32) on frontend and backend via shared package

- Improve admin dialog/panel styling; refine player parlay and match bet card kickoff display

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-09 17:56:28 +08:00
parent d5e7c8edb3
commit df20444be9
27 changed files with 2136 additions and 563 deletions

View File

@@ -595,6 +595,22 @@ model I18nMessage {
@@map("i18n_messages")
}
// ============ Media / File Uploads ============
model UploadedFile {
id String @id @default(uuid())
filename String @unique
category String @db.VarChar(32)
mimeType String @map("mime_type") @db.VarChar(64)
size Int
url String @db.VarChar(500)
uploadedBy BigInt? @map("uploaded_by")
createdAt DateTime @default(now()) @map("created_at")
@@index([category])
@@map("uploaded_files")
}
// ============ System Config & Audit ============
model SystemConfig {