// TriplePick 도메인 타입 — 기능정의서 데이터모델과 정합
// Firebase 연결 시 이 타입을 Firestore 변환기(converter)에 그대로 사용한다.

export type Outcome = "TEAM_A_WIN" | "DRAW" | "TEAM_B_WIN";
export type ModelName = "GPT" | "Claude" | "Gemini";
// scheduled: 오픈 전 / open: 투표 가능 / locked: 킥오프 후 마감 / live / finished
export type MatchStatus =
  | "scheduled"
  | "open"
  | "locked"
  | "live"
  | "finished"
  | "upcoming";

export interface Team {
  name: string; // 표시명 (예: Korea Republic)
  shortName: string; // 짧은 표시 (예: 한국)
  code: string; // KOR / CZE
  flag: string; // 이모지 국기 (1차), 추후 에셋 교체 가능
}

export interface Match {
  matchId: string;
  roundLabel: string; // "Match 01"
  group: string; // "A"
  teamA: Team;
  teamB: Team;
  kickoffKst: string; // ISO with +09:00
  venue: string;
  opensAt: string; // ISO — 투표 오픈 (킥오프 -48h, D-2)
  lockAt: string; // ISO — 투표 마감 (킥오프 정각 = 경기 시작 전까지)
  status: MatchStatus;
  hookText: string; // "한국 첫 경기, AI의 선택은 갈렸다"
  result?: { scoreA: number; scoreB: number; outcome: Outcome } | null;
}

export interface AIPrediction {
  matchId: string;
  model: ModelName;
  outcome: Outcome;
  scoreA: number;
  scoreB: number;
  confidencePct: number; // 0-100
  reasonShort: string;
  generatedAt: string; // 데이터 기준일
}

export interface CrowdStats {
  matchId: string;
  total: number;
  teamAWin: number;
  draw: number;
  teamBWin: number;
}

export interface UserPick {
  outcome: Outcome;
  scoreA: number;
  scoreB: number;
}
