// User & Auth export enum UserType { PLAYER = 'PLAYER', AGENT = 'AGENT', ADMIN = 'ADMIN', } export enum UserStatus { ACTIVE = 'ACTIVE', DISABLED = 'DISABLED', LOCKED = 'LOCKED', } export enum AgentLevel { LEVEL_1 = 1, LEVEL_2 = 2, } // Match export enum MatchStatus { DRAFT = 'DRAFT', PUBLISHED = 'PUBLISHED', CLOSED = 'CLOSED', PENDING_SETTLEMENT = 'PENDING_SETTLEMENT', SETTLED = 'SETTLED', CANCELLED = 'CANCELLED', VOID = 'VOID', } export enum MarketStatus { OPEN = 'OPEN', SUSPENDED = 'SUSPENDED', CLOSED = 'CLOSED', } export enum MarketType { FT_CORRECT_SCORE = 'FT_CORRECT_SCORE', HT_CORRECT_SCORE = 'HT_CORRECT_SCORE', SH_CORRECT_SCORE = 'SH_CORRECT_SCORE', FT_HANDICAP = 'FT_HANDICAP', FT_OVER_UNDER = 'FT_OVER_UNDER', FT_1X2 = 'FT_1X2', FT_ODD_EVEN = 'FT_ODD_EVEN', HT_HANDICAP = 'HT_HANDICAP', HT_OVER_UNDER = 'HT_OVER_UNDER', HT_1X2 = 'HT_1X2', OUTRIGHT_WINNER = 'OUTRIGHT_WINNER', } export enum Period { FT = 'FT', HT = 'HT', SH = 'SH', OUTRIGHT = 'OUTRIGHT', } // Bet export enum BetType { SINGLE = 'SINGLE', PARLAY = 'PARLAY', } export enum BetStatus { PENDING = 'PENDING', WON = 'WON', LOST = 'LOST', PUSH = 'PUSH', VOID = 'VOID', CANCELLED = 'CANCELLED', SETTLED = 'SETTLED', } export enum SelectionResult { WIN = 'WIN', HALF_WIN = 'HALF_WIN', PUSH = 'PUSH', HALF_LOSE = 'HALF_LOSE', LOSE = 'LOSE', VOID = 'VOID', } // Wallet export enum WalletTransactionType { MANUAL_DEPOSIT = 'MANUAL_DEPOSIT', MANUAL_WITHDRAW = 'MANUAL_WITHDRAW', BET_FREEZE = 'BET_FREEZE', BET_SETTLE_WIN = 'BET_SETTLE_WIN', BET_SETTLE_LOSE = 'BET_SETTLE_LOSE', BET_SETTLE_PUSH = 'BET_SETTLE_PUSH', BET_VOID_REFUND = 'BET_VOID_REFUND', CASHBACK = 'CASHBACK', RESETTLE_REVERSE = 'RESETTLE_REVERSE', MANUAL_ADJUST = 'MANUAL_ADJUST', } export enum WalletStatus { ACTIVE = 'ACTIVE', FROZEN = 'FROZEN', DISABLED = 'DISABLED', } // Locale export const SUPPORTED_LOCALES = ['zh-CN', 'ms-MY', 'en-US'] as const; export type Locale = (typeof SUPPORTED_LOCALES)[number]; export const DEFAULT_LOCALE: Locale = 'zh-CN'; // Admin roles export enum AdminRole { SUPER_ADMIN = 'SUPER_ADMIN', MATCH_ADMIN = 'MATCH_ADMIN', FINANCE_ADMIN = 'FINANCE_ADMIN', SUPPORT = 'SUPPORT', } export const PARLAY_MIN_LEGS = 2; export const PARLAY_MAX_LEGS = 5; export * from './betting-rules'; export * from './locale'; export * from './builtinPlayers'; export * from './playerLocale'; export interface ApiResponse { success: boolean; data?: T; message?: string; error?: string; }