Add shared error codes with zh/en/ms messages, coded app exceptions,
and locale-aware global filter. Frontends send X-Locale so error text
matches the active UI language.
Co-authored-by: Cursor <cursoragent@cursor.com>
Admin: add match/player overview sub-nav; refine settlement flow and league
match management UI; improve action button enabled/disabled styles; enhance
logo upload and outright odds sync.
API: expose matchPhase/bettingOpen for closed matches; league publish guards;
settlement preview with auto score save; outright team auto-sync.
Player: watermark for closed/settled states; keep match and bet details visible;
remove default login credentials.
Co-authored-by: Cursor <cursoragent@cursor.com>
- 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>
Introduce admin smoke-test suite with API probes, agent credit transaction history, and player cashback records; fix SmokeTestModule DI and polish admin/player UI assets.
Co-authored-by: Cursor <cursoragent@cursor.com>
Compress PNG assets across admin and player apps, removing unused
qianbao.png. Total image size reduced from ~22MB to ~5MB.
🤖 Generated with [Qoder][https://qoder.com]
Use alias to strip /admin/ prefix for file lookups and @admin_spa
named location for SPA fallback, preventing internal redirect cycle.
🤖 Generated with [Qoder][https://qoder.com]
Configure Vite base, Vue Router history, axios baseURL and container
Nginx to serve the admin panel under /admin/ path prefix.
🤖 Generated with [Qoder][https://qoder.com]
Document Gitea SSH/HTTPS auth, daily git pull workflow, and common server deployment troubleshooting in the project startup guide.
Co-authored-by: Cursor <cursoragent@cursor.com>
Rename Chinese public paths and image filenames so Vite builds succeed on Linux, strip legacy public dirs in Dockerfiles, and document clean redeploy steps.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add pnpm.onlyBuiltDependencies to allow Prisma, esbuild, NestJS etc.
to run postinstall scripts. Remove .env and .env.local from .gitignore.
🤖 Generated with [Qoder][https://qoder.com]
pnpm 11.5.2 requires Node.js v22.13+ and uses node:sqlite module unavailable in Node.js v20.
Also switch to --no-frozen-lockfile temporarily for lockfile format migration compatibility.
🤖 Generated with [Qoder][https://qoder.com]
Enable one-click production deploy via docker-compose.prod.yml, with deployment docs and zip packaging for Baota upload.
Co-authored-by: Cursor <cursoragent@cursor.com>