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[];
}
