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

@@ -42,6 +42,7 @@ const zh: Record<string, string> = {
'nav.contents': '公共管理',
'nav.audit': '操作日志',
'nav.smoke_tests': '自动化测试',
'nav.media': '媒体库',
'nav.players': '直属玩家',
'nav.subAgents': '下级代理',
'nav.myBets': '注单查询',
@@ -222,6 +223,7 @@ const en: Record<string, string> = {
'nav.contents': 'Public Content',
'nav.audit': 'Audit Log',
'nav.smoke_tests': 'Smoke tests',
'nav.media': 'Media Library',
'nav.players': 'My Players',
'nav.subAgents': 'Sub-Agents',
'nav.myBets': 'Bet Search',
@@ -402,6 +404,7 @@ const ms: Record<string, string> = {
'nav.contents': 'Kandungan awam',
'nav.audit': 'Log audit',
'nav.smoke_tests': 'Ujian asap',
'nav.media': 'Perpustakaan Media',
'nav.players': 'Pemain saya',
'nav.subAgents': 'Sub-ejen',
'nav.myBets': 'Carian pertaruhan',