前台: - 未登录可浏览首页/赛事/赔率,下注等操作弹出登录引导(去登录/继续浏览) - 顶部新增客服入口与 iframe 弹窗 - 登录页支持暂不登录返回浏览 API: - 首页/赛事/冠军盘接口改为公开访问,支持 X-Locale 头 - JWT 守卫支持可选认证 返水: - 注单新增 is_cashbacked 字段,发放时自动标记 - 预览展示玩家余额,明确平台直发不从代理扣款 - 后台注单列表与玩家历史展示回水状态 其他: - 串关禁止同场重复选号(SAME_MATCH) - 补充结算资金流分析文档 Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
export interface BetSelectionPreview {
|
|
matchId: string | null;
|
|
matchLabel: string;
|
|
leagueName: string;
|
|
marketType: string;
|
|
period: string | null;
|
|
selectionName: string;
|
|
odds: string;
|
|
}
|
|
|
|
export interface BetListRow {
|
|
id: string;
|
|
betNo: string;
|
|
userId: string;
|
|
username: string;
|
|
parentUsername: string | null;
|
|
agentId: string | null;
|
|
betType: string;
|
|
stake: string;
|
|
totalOdds: string | null;
|
|
potentialReturn: string | null;
|
|
actualReturn: string;
|
|
status: string;
|
|
settlementStatus: string | null;
|
|
currency: string;
|
|
placedAt: string;
|
|
settledAt: string | null;
|
|
isCashbacked: boolean;
|
|
selectionCount: number;
|
|
selectionSummary: string;
|
|
selectionPreviews: BetSelectionPreview[];
|
|
}
|
|
|
|
export interface BetSelectionDetail {
|
|
id: string;
|
|
matchId: string | null;
|
|
matchLabel: string;
|
|
leagueName: string;
|
|
marketType: string;
|
|
period: string | null;
|
|
selectionName: string;
|
|
handicapLine: string | null;
|
|
totalLine: string | null;
|
|
odds: string;
|
|
resultStatus: string | null;
|
|
effectiveOdds: string | null;
|
|
sortOrder: number;
|
|
}
|
|
|
|
export interface BetDetail extends BetListRow {
|
|
requestId: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
selections: BetSelectionDetail[];
|
|
}
|