/* global React */
const { useState, useEffect, useMemo } = React;

// Mock data shared across components
const SPORTS = [
  { id: "soccer", name: "足球", emoji: "⚽" },
  { id: "basket", name: "籃球", emoji: "🏀" },
  { id: "baseball", name: "棒球", emoji: "⚾" },
  { id: "esports", name: "電競", emoji: "🎮" },
];

const LEAGUES = {
  soccer: [
    { id: "epl", name: "英超", short: "EPL" },
    { id: "laliga", name: "西甲", short: "LL" },
    { id: "bund", name: "德甲", short: "BUN" },
    { id: "uefa", name: "UEFA", short: "UCL" },
    { id: "mls", name: "MLS", short: "MLS" },
  ],
  basket: [
    { id: "nba", name: "NBA", short: "NBA" },
    { id: "wnba", name: "WNBA", short: "WNBA" },
    { id: "euro", name: "歐冠籃", short: "EBL" },
  ],
  baseball: [{ id: "mlb", name: "MLB", short: "MLB" }, { id: "npb", name: "日職", short: "NPB" }, { id: "kbo", name: "韓職", short: "KBO" }],
  esports: [{ id: "lol", name: "英雄聯盟", short: "LoL" }, { id: "csgo", name: "CS2", short: "CS2" }],
};

const MARKETS = [
  { id: "win", name: "獨贏" },
  { id: "ah", name: "讓分" },
  { id: "ou", name: "大小" },
  { id: "btts", name: "兩隊都進" },
];

const STRATEGIES = [
  { id: "value", name: "價值倉位" },
  { id: "underdog", name: "冷門狙擊" },
  { id: "trend", name: "趨勢追蹤" },
  { id: "hedge", name: "對沖組合" },
];

const TICKER = [
  { lg: "EPL", match: "Arsenal vs Chelsea", pick: "ARS -0.5", odds: "1.92" },
  { lg: "NBA", match: "Lakers vs Celtics", pick: "OVER 224.5", odds: "1.88" },
  { lg: "UCL", match: "Real Madrid vs PSG", pick: "BTTS YES", odds: "1.74" },
  { lg: "MLB", match: "Yankees vs Dodgers", pick: "NYY ML", odds: "2.15" },
  { lg: "BUN", match: "Bayern vs Dortmund", pick: "OVER 2.5", odds: "1.65" },
  { lg: "LL", match: "Barça vs Atlético", pick: "BAR -0.75", odds: "1.95" },
  { lg: "NBA", match: "Nuggets vs Heat", pick: "DEN -4.5", odds: "1.91" },
  { lg: "EPL", match: "Liverpool vs Man City", pick: "DRAW", odds: "3.40" },
];

const COMPLETED = [
  { date: "05/07", lg: "EPL", home: "Arsenal", away: "Chelsea", market: "讓分", pick: "ARS -0.5", odds: 1.92, conf: 78, score: "2-0", result: "win" },
  { date: "05/07", lg: "NBA", home: "Lakers", away: "Celtics", market: "大小", pick: "OVER 224.5", odds: 1.88, conf: 71, score: "118-110", result: "win" },
  { date: "05/06", lg: "MLB", home: "Yankees", away: "Red Sox", market: "獨贏", pick: "NYY ML", odds: 1.65, conf: 82, score: "5-2", result: "win" },
  { date: "05/06", lg: "UCL", home: "Real Madrid", away: "PSG", market: "兩隊都進", pick: "BTTS NO", odds: 2.10, conf: 64, score: "1-2", result: "loss" },
  { date: "05/05", lg: "BUN", home: "Bayern", away: "Leverkusen", market: "讓分", pick: "BAY -1.0", odds: 1.85, conf: 69, score: "3-1", result: "win" },
  { date: "05/05", lg: "LL", home: "Barça", away: "Atlético", market: "大小", pick: "OVER 2.5", odds: 1.78, conf: 73, score: "2-1", result: "win" },
  { date: "05/04", lg: "NBA", home: "Warriors", away: "Suns", market: "獨贏", pick: "GSW ML", odds: 2.05, conf: 60, score: "108-115", result: "loss" },
  { date: "05/04", lg: "EPL", home: "Liverpool", away: "Tottenham", market: "讓分", pick: "LIV -1.5", odds: 2.20, conf: 67, score: "4-1", result: "win" },
];

const ONGOING = [
  { date: "今晚 19:30", lg: "EPL", home: "Man City", away: "Arsenal", market: "獨贏", pick: "MCI ML", odds: 2.05, conf: 74, kickoff: "今晚 19:30" },
  { date: "今晚 22:00", lg: "NBA", home: "Lakers", away: "Warriors", market: "大小", pick: "OVER 232.5", odds: 1.91, conf: 81, kickoff: "今晚 22:00" },
  { date: "明日 03:30", lg: "UCL", home: "Bayern", away: "Real Madrid", market: "讓分", pick: "RMA +0.5", odds: 1.83, conf: 70, kickoff: "明日 03:30" },
  { date: "明日 09:00", lg: "MLB", home: "Dodgers", away: "Padres", market: "獨贏", pick: "LAD ML", odds: 1.55, conf: 86, kickoff: "明日 09:00" },
  { date: "明日 19:30", lg: "LL", home: "Real Madrid", away: "Sevilla", market: "大小", pick: "UNDER 2.5", odds: 2.12, conf: 65, kickoff: "明日 19:30" },
];

const SCHEDULE = {
  "今天 · 5月8日": [
    { time: "19:30", lg: "EPL", status: "live", home: "Man City", away: "Arsenal", hScore: 1, aScore: 1, pick: "MCI ML", conf: 74 },
    { time: "20:00", lg: "BUN", status: "upcoming", home: "Bayern", away: "Dortmund", pick: "OVER 2.5", conf: 78 },
    { time: "22:00", lg: "NBA", status: "upcoming", home: "Lakers", away: "Warriors", pick: "OVER 232.5", conf: 81 },
  ],
  "明天 · 5月9日": [
    { time: "03:30", lg: "UCL", status: "upcoming", home: "Bayern", away: "Real Madrid", pick: "RMA +0.5", conf: 70 },
    { time: "09:00", lg: "MLB", status: "upcoming", home: "Dodgers", away: "Padres", pick: "LAD ML", conf: 86 },
    { time: "19:30", lg: "LL", status: "upcoming", home: "Real Madrid", away: "Sevilla", pick: "UNDER 2.5", conf: 65 },
  ],
};

const NEWS = [
  { tag: "深度分析", date: "05/08", title: "Bayern vs Real Madrid：模型給出三條獨立路徑", excerpt: "綜合過去 12 場交手與本季 xG 走勢，AI 在三種讓分情境下的勝率分歧明顯，值得關注。", featured: true, color: "acc" },
  { tag: "傷停動態", date: "05/08", title: "Lakers 主將回歸 — 賠率瞬間反向", excerpt: "盤口在開盤後 14 分鐘內出現 6.5 分的修正。" , color: "acc2" },
  { tag: "週報", date: "05/07", title: "上週模型勝率 68.4%，超越前 30 天均值 5.1%", excerpt: "其中讓分市場貢獻最大，價值倉位策略連續第三週領先。" },
  { tag: "市場觀察", date: "05/07", title: "MLB 開季：投手用球數權重模型", excerpt: "Sports365 重新校準了投手指標，提升早期賽季的預測穩定性。", color: "acc" },
  { tag: "技術筆記", date: "05/06", title: "為什麼我們捨棄了純 xG 模型", excerpt: "新的多因子框架在低分賽事中表現顯著更好。" },
];

const CUSTOM_MODELS = [
  { name: "歐冠 · 讓分價值倉", tags: ["UCL", "讓分", "價值倉位"], wr: 71.2, runs: 38 },
  { name: "NBA · 主場大分追蹤", tags: ["NBA", "大小", "趨勢追蹤"], wr: 64.8, runs: 52 },
  { name: "MLB · 客場冷門", tags: ["MLB", "獨贏", "冷門狙擊"], wr: 58.3, runs: 21 },
];

const CONVERSATIONS = [
  { sport: "soccer", league: "epl", market: "ah", strategy: "value" },
];

window.SP_DATA = { SPORTS, LEAGUES, MARKETS, STRATEGIES, TICKER, COMPLETED, ONGOING, SCHEDULE, NEWS, CUSTOM_MODELS, CONVERSATIONS };
