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

@@ -0,0 +1,19 @@
-- CreateTable
CREATE TABLE "uploaded_files" (
"id" TEXT NOT NULL,
"filename" TEXT NOT NULL,
"category" VARCHAR(32) NOT NULL,
"mime_type" VARCHAR(64) NOT NULL,
"size" INTEGER NOT NULL,
"url" VARCHAR(500) NOT NULL,
"uploaded_by" BIGINT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "uploaded_files_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "uploaded_files_filename_key" ON "uploaded_files"("filename");
-- CreateIndex
CREATE INDEX "uploaded_files_category_idx" ON "uploaded_files"("category");