feat: multi-tier agent hierarchy, wallet ledger, and player UX polish

Add configurable agent max level and default sub-agent credit ratio, per-agent block direct player login on suspend, admin/agent wallet transaction views, and match detail my-bets section with refreshed player card styling.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-10 16:15:34 +08:00
parent 641c92a5f5
commit ef6b15f119
39 changed files with 2398 additions and 410 deletions

View File

@@ -390,9 +390,24 @@ export const API_ERROR_MESSAGES = {
'ms-MY': 'Pengguna sudah menjadi ejen',
},
AGENT_LEVEL_INVALID: {
'zh-CN': '代理级别须为 1 或 2',
'en-US': 'Agent level must be 1 or 2',
'ms-MY': 'Tahap ejen mesti 1 atau 2',
'zh-CN': '代理级别无效',
'en-US': 'Invalid agent level',
'ms-MY': 'Tahap ejen tidak sah',
},
AGENT_MAX_LEVEL_REACHED: {
'zh-CN': '已达到最大代理层级,无法继续创建下级',
'en-US': 'Maximum agent level reached; cannot create sub-agents',
'ms-MY': 'Tahap ejen maksimum dicapai; tidak boleh cipta sub-ejen',
},
AGENT_PARENT_LEVEL_MISMATCH: {
'zh-CN': '上级代理层级与目标层级不匹配',
'en-US': 'Parent agent level does not match target level',
'ms-MY': 'Tahap ejen induk tidak sepadan dengan tahap sasaran',
},
AGENT_LEVEL_ROOT_INVALID: {
'zh-CN': '一级代理不可指定上级',
'en-US': 'Root-level agents cannot have a parent',
'ms-MY': 'Ejen peringkat akar tidak boleh ada induk',
},
LEVEL2_REQUIRES_PARENT: {
'zh-CN': '二级代理必须指定上级代理',

View File

@@ -11,6 +11,12 @@ export enum UserStatus {
LOCKED = 'LOCKED',
}
/** Minimum agent tier (root agents). Actual levels are unbounded integers when `agent.max_level` is 0. */
export const MIN_AGENT_LEVEL = 1;
/**
* Legacy enum for the original two-tier demo. Production code should use numeric `agentLevel` / `AgentProfile.level`.
*/
export enum AgentLevel {
LEVEL_1 = 1,
LEVEL_2 = 2,