// SunFront World Cup 2026 — fixture data sourced from FIFA.com
// Live scores fetched from /api/matches and merged at runtime.

const OUTLETS = [
  { id: 1, code: 'LIVIN',    name: 'LIVIN',    address: 'Aazamaan, Majeedhee Magu' },
  { id: 2, code: 'LIGHTIN',  name: 'LIGHTIN',  address: 'Nalahiya Manzil, Fareedhee Magu' },
  { id: 3, code: 'SCOPE',    name: 'SCOPE',    address: 'Ihaali, Majeedhee Magu' },
  { id: 4, code: 'SUNFRONT', name: 'SunFront', address: 'Sweatpea, Majeedhee Magu' },
];

const TEAM = (name, flag, group) => ({ name, flag, group });
// All 48 FIFA World Cup 2026 qualified teams
const TEAMS = {
  MEX: TEAM('Mexico',                  'mx',     'A'),
  SAF: TEAM('South Africa',            'za',     'A'),
  KOR: TEAM('Korea Republic',          'kr',     'A'),
  CZE: TEAM('Czechia',                 'cz',     'A'),
  CAN: TEAM('Canada',                  'ca',     'B'),
  BIH: TEAM('Bosnia and Herzegovina',  'ba',     'B'),
  QAT: TEAM('Qatar',                   'qa',     'B'),
  SUI: TEAM('Switzerland',             'ch',     'B'),
  BRA: TEAM('Brazil',                  'br',     'C'),
  MAR: TEAM('Morocco',                 'ma',     'C'),
  HAI: TEAM('Haiti',                   'ht',     'C'),
  SCO: TEAM('Scotland',                'gb-sct', 'C'),
  USA: TEAM('USA',                     'us',     'D'),
  PAR: TEAM('Paraguay',                'py',     'D'),
  AUS: TEAM('Australia',               'au',     'D'),
  TUR: TEAM('Türkiye',                 'tr',     'D'),
  GER: TEAM('Germany',                 'de',     'E'),
  CUW: TEAM('Curaçao',                 'cw',     'E'),
  CIV: TEAM("Côte d'Ivoire",           'ci',     'E'),
  ECU: TEAM('Ecuador',                 'ec',     'E'),
  NED: TEAM('Netherlands',             'nl',     'F'),
  JPN: TEAM('Japan',                   'jp',     'F'),
  SWE: TEAM('Sweden',                  'se',     'F'),
  TUN: TEAM('Tunisia',                 'tn',     'F'),
  BEL: TEAM('Belgium',                 'be',     'G'),
  EGY: TEAM('Egypt',                   'eg',     'G'),
  IRN: TEAM('IR Iran',                 'ir',     'G'),
  NZL: TEAM('New Zealand',             'nz',     'G'),
  ESP: TEAM('Spain',                   'es',     'H'),
  CPV: TEAM('Cabo Verde',              'cv',     'H'),
  KSA: TEAM('Saudi Arabia',            'sa',     'H'),
  URU: TEAM('Uruguay',                 'uy',     'H'),
  FRA: TEAM('France',                  'fr',     'I'),
  SEN: TEAM('Senegal',                 'sn',     'I'),
  IRQ: TEAM('Iraq',                    'iq',     'I'),
  NOR: TEAM('Norway',                  'no',     'I'),
  ARG: TEAM('Argentina',               'ar',     'J'),
  ALG: TEAM('Algeria',                 'dz',     'J'),
  AUT: TEAM('Austria',                 'at',     'J'),
  JOR: TEAM('Jordan',                  'jo',     'J'),
  POR: TEAM('Portugal',                'pt',     'K'),
  COD: TEAM('Congo DR',                'cd',     'K'),
  UZB: TEAM('Uzbekistan',              'uz',     'K'),
  COL: TEAM('Colombia',                'co',     'K'),
  ENG: TEAM('England',                 'gb-eng', 'L'),
  CRO: TEAM('Croatia',                 'hr',     'L'),
  GHA: TEAM('Ghana',                   'gh',     'L'),
  PAN: TEAM('Panama',                  'pa',     'L'),
};

const NOW = Date.now();
const HOURS = (h) => h * 60 * 60 * 1000;

// DEMO MODE: First matches use nearby dates (May 2026) to test the system.
// Switch kickoff dates back to real FIFA dates (June 2026) before launch.
const RAW_MATCHES = [
  // ── Group A — first 3 use demo dates for testing; revert to real dates before launch ──
  // DEMO SETTLED (status = SETTLED — result declared, draw shown)
  { id:400021443, a:'MEX', b:'SAF', kickoff:'2026-05-18T14:00:00Z', stage:'Group Stage · Group A', venue:'Estadio Azteca, Mexico City',
    settled:{ winner:'MEX', scoreA:2, scoreB:0, draw:false } },
  // DEMO CLOSED (kickoff passed, no result yet — predictions locked)
  { id:400021441, a:'KOR', b:'CZE', kickoff:'2026-05-19T14:00:00Z', stage:'Group Stage · Group A', venue:'Estadio Akron, Guadalajara' },
  // DEMO OPEN (opens 24h before kickoff; kickoff May 21 10:00 UTC → OPEN window May 20 10:00–May 21 10:00 UTC)
  { id:400021440, a:'CZE', b:'SAF', kickoff:'2026-05-21T10:00:00Z', stage:'Group Stage · Group A', venue:'Mercedes-Benz Stadium, Atlanta' },
  { id:400021442, a:'MEX', b:'KOR', kickoff:'2026-06-18T21:00:00-04:00', stage:'Group Stage · Group A', venue:'Estadio Akron, Guadalajara' },
  { id:400021444, a:'CZE', b:'MEX', kickoff:'2026-06-24T21:00:00-04:00', stage:'Group Stage · Group A', venue:'Estadio Azteca, Mexico City' },
  { id:400021445, a:'SAF', b:'KOR', kickoff:'2026-06-24T21:00:00-04:00', stage:'Group Stage · Group A', venue:'Estadio BBVA, Monterrey' },
  // ── Group B ──
  { id:400021449, a:'CAN', b:'BIH', kickoff:'2026-06-12T15:00:00-04:00', stage:'Group Stage · Group B', venue:'BMO Field, Toronto' },
  { id:400021447, a:'QAT', b:'SUI', kickoff:'2026-06-13T15:00:00-04:00', stage:'Group Stage · Group B', venue:"Levi's Stadium, Santa Clara" },
  { id:400021446, a:'SUI', b:'BIH', kickoff:'2026-06-18T15:00:00-04:00', stage:'Group Stage · Group B', venue:'SoFi Stadium, Los Angeles' },
  { id:400021450, a:'CAN', b:'QAT', kickoff:'2026-06-18T18:00:00-04:00', stage:'Group Stage · Group B', venue:'BC Place, Vancouver' },
  { id:400021451, a:'SUI', b:'CAN', kickoff:'2026-06-24T15:00:00-04:00', stage:'Group Stage · Group B', venue:'BC Place, Vancouver' },
  { id:400021448, a:'BIH', b:'QAT', kickoff:'2026-06-24T15:00:00-04:00', stage:'Group Stage · Group B', venue:'Lumen Field, Seattle' },
  // ── Group C ──
  { id:400021456, a:'BRA', b:'MAR', kickoff:'2026-06-13T18:00:00-04:00', stage:'Group Stage · Group C', venue:'MetLife Stadium, New York/New Jersey' },
  { id:400021453, a:'HAI', b:'SCO', kickoff:'2026-06-13T21:00:00-04:00', stage:'Group Stage · Group C', venue:'Gillette Stadium, Boston' },
  { id:400021454, a:'SCO', b:'MAR', kickoff:'2026-06-19T18:00:00-04:00', stage:'Group Stage · Group C', venue:'Gillette Stadium, Boston' },
  { id:400021457, a:'BRA', b:'HAI', kickoff:'2026-06-19T20:30:00-04:00', stage:'Group Stage · Group C', venue:'Lincoln Financial Field, Philadelphia' },
  { id:400021455, a:'SCO', b:'BRA', kickoff:'2026-06-24T18:00:00-04:00', stage:'Group Stage · Group C', venue:'Hard Rock Stadium, Miami' },
  { id:400021452, a:'MAR', b:'HAI', kickoff:'2026-06-24T18:00:00-04:00', stage:'Group Stage · Group C', venue:'Mercedes-Benz Stadium, Atlanta' },
  // ── Group D ──
  { id:400021458, a:'USA', b:'PAR', kickoff:'2026-06-12T21:00:00-04:00', stage:'Group Stage · Group D', venue:'SoFi Stadium, Los Angeles' },
  { id:400021463, a:'AUS', b:'TUR', kickoff:'2026-06-14T00:00:00-04:00', stage:'Group Stage · Group D', venue:'BC Place, Vancouver' },
  { id:400021462, a:'USA', b:'AUS', kickoff:'2026-06-19T15:00:00-04:00', stage:'Group Stage · Group D', venue:'Lumen Field, Seattle' },
  { id:400021460, a:'TUR', b:'PAR', kickoff:'2026-06-19T23:00:00-04:00', stage:'Group Stage · Group D', venue:"Levi's Stadium, Santa Clara" },
  { id:400021459, a:'USA', b:'TUR', kickoff:'2026-06-25T22:00:00-04:00', stage:'Group Stage · Group D', venue:'SoFi Stadium, Los Angeles' },
  { id:400021461, a:'PAR', b:'AUS', kickoff:'2026-06-25T22:00:00-04:00', stage:'Group Stage · Group D', venue:"Levi's Stadium, Santa Clara" },
  // ── Group E ──
  { id:400021464, a:'GER', b:'CUW', kickoff:'2026-06-14T13:00:00-04:00', stage:'Group Stage · Group E', venue:'NRG Stadium, Houston' },
  { id:400021467, a:'CIV', b:'ECU', kickoff:'2026-06-14T19:00:00-04:00', stage:'Group Stage · Group E', venue:'Lincoln Financial Field, Philadelphia' },
  { id:400021469, a:'GER', b:'CIV', kickoff:'2026-06-20T16:00:00-04:00', stage:'Group Stage · Group E', venue:'BMO Field, Toronto' },
  { id:400021465, a:'ECU', b:'CUW', kickoff:'2026-06-20T20:00:00-04:00', stage:'Group Stage · Group E', venue:'Arrowhead Stadium, Kansas City' },
  { id:400021466, a:'ECU', b:'GER', kickoff:'2026-06-25T16:00:00-04:00', stage:'Group Stage · Group E', venue:'MetLife Stadium, New York/New Jersey' },
  { id:400021468, a:'CUW', b:'CIV', kickoff:'2026-06-25T16:00:00-04:00', stage:'Group Stage · Group E', venue:'Lincoln Financial Field, Philadelphia' },
  // ── Group F ──
  { id:400021470, a:'NED', b:'JPN', kickoff:'2026-06-14T16:00:00-04:00', stage:'Group Stage · Group F', venue:'AT&T Stadium, Dallas' },
  { id:400021474, a:'SWE', b:'TUN', kickoff:'2026-06-14T22:00:00-04:00', stage:'Group Stage · Group F', venue:'Estadio BBVA, Monterrey' },
  { id:400021472, a:'NED', b:'SWE', kickoff:'2026-06-20T13:00:00-04:00', stage:'Group Stage · Group F', venue:'NRG Stadium, Houston' },
  { id:400021475, a:'TUN', b:'JPN', kickoff:'2026-06-21T00:00:00-04:00', stage:'Group Stage · Group F', venue:'Estadio BBVA, Monterrey' },
  { id:400021471, a:'JPN', b:'SWE', kickoff:'2026-06-25T19:00:00-04:00', stage:'Group Stage · Group F', venue:'AT&T Stadium, Dallas' },
  { id:400021473, a:'TUN', b:'NED', kickoff:'2026-06-25T19:00:00-04:00', stage:'Group Stage · Group F', venue:'Arrowhead Stadium, Kansas City' },
  // ── Group G ──
  { id:400021478, a:'BEL', b:'EGY', kickoff:'2026-06-15T15:00:00-04:00', stage:'Group Stage · Group G', venue:'Lumen Field, Seattle' },
  { id:400021476, a:'IRN', b:'NZL', kickoff:'2026-06-15T21:00:00-04:00', stage:'Group Stage · Group G', venue:'SoFi Stadium, Los Angeles' },
  { id:400021477, a:'BEL', b:'IRN', kickoff:'2026-06-21T15:00:00-04:00', stage:'Group Stage · Group G', venue:'SoFi Stadium, Los Angeles' },
  { id:400021480, a:'NZL', b:'EGY', kickoff:'2026-06-21T21:00:00-04:00', stage:'Group Stage · Group G', venue:'BC Place, Vancouver' },
  { id:400021479, a:'EGY', b:'IRN', kickoff:'2026-06-26T23:00:00-04:00', stage:'Group Stage · Group G', venue:'Lumen Field, Seattle' },
  { id:400021481, a:'NZL', b:'BEL', kickoff:'2026-06-26T23:00:00-04:00', stage:'Group Stage · Group G', venue:'BC Place, Vancouver' },
  // ── Group H ──
  { id:400021482, a:'ESP', b:'CPV', kickoff:'2026-06-15T12:00:00-04:00', stage:'Group Stage · Group H', venue:'Mercedes-Benz Stadium, Atlanta' },
  { id:400021486, a:'KSA', b:'URU', kickoff:'2026-06-15T18:00:00-04:00', stage:'Group Stage · Group H', venue:'Hard Rock Stadium, Miami' },
  { id:400021483, a:'ESP', b:'KSA', kickoff:'2026-06-21T12:00:00-04:00', stage:'Group Stage · Group H', venue:'Mercedes-Benz Stadium, Atlanta' },
  { id:400021487, a:'URU', b:'CPV', kickoff:'2026-06-21T18:00:00-04:00', stage:'Group Stage · Group H', venue:'Hard Rock Stadium, Miami' },
  { id:400021484, a:'CPV', b:'KSA', kickoff:'2026-06-26T20:00:00-04:00', stage:'Group Stage · Group H', venue:'NRG Stadium, Houston' },
  { id:400021485, a:'URU', b:'ESP', kickoff:'2026-06-26T20:00:00-04:00', stage:'Group Stage · Group H', venue:'Estadio Akron, Guadalajara' },
  // ── Group I ──
  { id:400021490, a:'FRA', b:'SEN', kickoff:'2026-06-16T15:00:00-04:00', stage:'Group Stage · Group I', venue:'MetLife Stadium, New York/New Jersey' },
  { id:400021488, a:'IRQ', b:'NOR', kickoff:'2026-06-16T18:00:00-04:00', stage:'Group Stage · Group I', venue:'Gillette Stadium, Boston' },
  { id:400021492, a:'FRA', b:'IRQ', kickoff:'2026-06-22T17:00:00-04:00', stage:'Group Stage · Group I', venue:'Lincoln Financial Field, Philadelphia' },
  { id:400021491, a:'NOR', b:'SEN', kickoff:'2026-06-22T20:00:00-04:00', stage:'Group Stage · Group I', venue:'MetLife Stadium, New York/New Jersey' },
  { id:400021489, a:'NOR', b:'FRA', kickoff:'2026-06-26T15:00:00-04:00', stage:'Group Stage · Group I', venue:'Gillette Stadium, Boston' },
  { id:400021493, a:'SEN', b:'IRQ', kickoff:'2026-06-26T15:00:00-04:00', stage:'Group Stage · Group I', venue:'BMO Field, Toronto' },
  // ── Group J ──
  { id:400021496, a:'ARG', b:'ALG', kickoff:'2026-06-16T21:00:00-04:00', stage:'Group Stage · Group J', venue:'Arrowhead Stadium, Kansas City' },
  { id:400021498, a:'AUT', b:'JOR', kickoff:'2026-06-17T00:00:00-04:00', stage:'Group Stage · Group J', venue:"Levi's Stadium, Santa Clara" },
  { id:400021494, a:'ARG', b:'AUT', kickoff:'2026-06-22T13:00:00-04:00', stage:'Group Stage · Group J', venue:'AT&T Stadium, Dallas' },
  { id:400021499, a:'JOR', b:'ALG', kickoff:'2026-06-22T23:00:00-04:00', stage:'Group Stage · Group J', venue:"Levi's Stadium, Santa Clara" },
  { id:400021495, a:'ALG', b:'AUT', kickoff:'2026-06-27T22:00:00-04:00', stage:'Group Stage · Group J', venue:'Arrowhead Stadium, Kansas City' },
  { id:400021497, a:'JOR', b:'ARG', kickoff:'2026-06-27T22:00:00-04:00', stage:'Group Stage · Group J', venue:'AT&T Stadium, Dallas' },
  // ── Group K ──
  { id:400021502, a:'POR', b:'COD', kickoff:'2026-06-17T13:00:00-04:00', stage:'Group Stage · Group K', venue:'NRG Stadium, Houston' },
  { id:400021504, a:'UZB', b:'COL', kickoff:'2026-06-17T22:00:00-04:00', stage:'Group Stage · Group K', venue:'Estadio Azteca, Mexico City' },
  { id:400021503, a:'POR', b:'UZB', kickoff:'2026-06-23T13:00:00-04:00', stage:'Group Stage · Group K', venue:'NRG Stadium, Houston' },
  { id:400021501, a:'COL', b:'COD', kickoff:'2026-06-23T22:00:00-04:00', stage:'Group Stage · Group K', venue:'Estadio Akron, Guadalajara' },
  { id:400021500, a:'COL', b:'POR', kickoff:'2026-06-27T19:30:00-04:00', stage:'Group Stage · Group K', venue:'Hard Rock Stadium, Miami' },
  { id:400021505, a:'COD', b:'UZB', kickoff:'2026-06-27T19:30:00-04:00', stage:'Group Stage · Group K', venue:'Mercedes-Benz Stadium, Atlanta' },
  // ── Group L ──
  { id:400021507, a:'ENG', b:'CRO', kickoff:'2026-06-17T16:00:00-04:00', stage:'Group Stage · Group L', venue:'AT&T Stadium, Dallas' },
  { id:400021510, a:'GHA', b:'PAN', kickoff:'2026-06-17T19:00:00-04:00', stage:'Group Stage · Group L', venue:'BMO Field, Toronto' },
  { id:400021506, a:'ENG', b:'GHA', kickoff:'2026-06-23T16:00:00-04:00', stage:'Group Stage · Group L', venue:'Gillette Stadium, Boston' },
  { id:400021511, a:'PAN', b:'CRO', kickoff:'2026-06-23T19:00:00-04:00', stage:'Group Stage · Group L', venue:'BMO Field, Toronto' },
  { id:400021508, a:'PAN', b:'ENG', kickoff:'2026-06-27T17:00:00-04:00', stage:'Group Stage · Group L', venue:'MetLife Stadium, New York/New Jersey' },
  { id:400021509, a:'CRO', b:'GHA', kickoff:'2026-06-27T17:00:00-04:00', stage:'Group Stage · Group L', venue:'Lincoln Financial Field, Philadelphia' },
];

function deriveStatus(m) {
  const kickoffMs = new Date(m.kickoff).getTime();
  const opensAt = kickoffMs - HOURS(24);
  if (m.settled) return 'SETTLED';
  if (NOW >= kickoffMs) return 'CLOSED';
  if (NOW >= opensAt) return 'OPEN';
  return 'SCHEDULED';
}

const MATCHES = RAW_MATCHES.map(m => {
  const kickoffAt = new Date(m.kickoff);
  return {
    id: m.id,
    teamA: TEAMS[m.a],
    teamB: TEAMS[m.b],
    teamAKey: m.a,
    teamBKey: m.b,
    kickoffAt,
    kickoffMs: kickoffAt.getTime(),
    stage: m.stage,
    venue: m.venue,
    status: deriveStatus(m),
    settled: m.settled || null,
  };
});

// Aggregated dashboard data — demo figures for system testing.
const DASHBOARD = {
  totals: {
    totalPredictions: 1284,
    matchesTracked: MATCHES.length,
    openNow: MATCHES.filter(m => m.status === 'OPEN').length,
    settled:  MATCHES.filter(m => m.status === 'SETTLED').length,
  },
  byOutlet: [
    { outlet: 'LIVIN',    count: 412 },
    { outlet: 'LIGHTIN',  count: 337 },
    { outlet: 'SCOPE',    count: 298 },
    { outlet: 'SunFront', count: 237 },
  ],
  daily: [
    { d:'May 09', n: 48 },
    { d:'May 10', n: 71 },
    { d:'May 11', n: 95 },
    { d:'May 12', n: 110 },
    { d:'May 13', n: 143 },
    { d:'May 14', n: 198 },
    { d:'May 15', n: 176 },
    { d:'May 16', n: 221 },
    { d:'May 17', n: 222 },
  ],
  byMatch: (function() {
    var settled = MATCHES.filter(function(m){ return m.status === 'SETTLED'; });
    var open    = MATCHES.filter(function(m){ return m.status === 'OPEN'; });
    var rows = settled.concat(open).slice(0, 5);
    var counts = [[186,42,98],[204,31,117],[91,58,143],[138,49,112],[97,62,88]];
    return rows.map(function(m, i) {
      var c = counts[i] || [1,1,1];
      return { id:m.id, a:m.teamA.name, b:m.teamB.name, flagA:m.teamA.flag, flagB:m.teamB.flag, stage:m.stage, a_n:c[0], draw_n:c[1], b_n:c[2] };
    });
  }()),
};

Object.assign(window, { OUTLETS, TEAMS, MATCHES, DASHBOARD, NOW, HOURS });

/* ========================================================================
   Admin-only mock data — these would come from server endpoints in prod.
   ======================================================================== */

// Sample predictions (with PII — only an authenticated admin sees this).
const SAMPLE_PREDICTIONS = (() => {
  const firstNames = ['Ahmed', 'Aishath', 'Mohamed', 'Fathimath', 'Hassan', 'Mariyam', 'Ibrahim', 'Khadeeja', 'Ali', 'Hawwa', 'Yoosuf', 'Shaheedha', 'Ismail', 'Niuma', 'Rashid', 'Aminath'];
  const lastNames  = ['Hassan', 'Naseem', 'Saeed', 'Rasheed', 'Latheef', 'Manik', 'Zahir', 'Adam', 'Ali', 'Didi', 'Ibrahim', 'Waheed', 'Shareef'];
  const outletNames = OUTLETS.map(o => o.name);
  const matchIds = MATCHES.map(m => m.id);
  const out = [];
  for (let i = 0; i < 56; i++) {
    const m = MATCHES.find(x => x.id === matchIds[i % matchIds.length]);
    const pickKind = ['A', 'B', 'DRAW'][i % 3];
    const correct =
      m.status === 'SETTLED'
        ? (m.settled.draw ? pickKind === 'DRAW' :
           (pickKind === 'A' ? m.settled.winner === m.teamAKey :
            pickKind === 'B' ? m.settled.winner === m.teamBKey : false))
        : null;
    out.push({
      id: `pred_${1000 + i}`,
      customerName: `${firstNames[i % firstNames.length]} ${lastNames[(i * 3) % lastNames.length]}`,
      customerPhone: `+9607${String(220000 + i * 137).slice(-6)}`,
      outlet: outletNames[i % outletNames.length],
      billNumber: `SF-2026-${String(20000 + i * 23).padStart(5, '0')}`,
      matchId: m.id,
      matchLabel: `${m.teamA.name} vs ${m.teamB.name}`,
      pick: pickKind === 'A' ? m.teamA.name : pickKind === 'B' ? m.teamB.name : 'Draw',
      pickKind,
      isCorrect: correct,
      submittedAt: NOW - HOURS(i * 0.4 + 1),
    });
  }
  return out;
})();

// Default site content — edited via Content tab.
const SITE_CONTENT_DEFAULTS = {
  hero: {
    eyebrow: 'World Cup 2026 · Campaign live',
    headline: 'Every receipt is your free ticket to win.',
    headlineHighlight: 'free ticket',
    sub: 'Shop at any SunFront outlet, predict the match winner, and lock yourself into the lucky draw for prizes after every game of the World Cup 2026.',
    ctaPrimary: 'Predict now',
    ctaSecondary: 'Live stats',
  },
  ticket: {
    title: 'FIFA World Cup',
    year: '2026',
    region: 'USA · Canada · Mexico',
    outlets: '04',
    matches: '104',
  },
  hotline: '764 5513',
  hotlineRegion: 'Maldives',
  tagline: 'Quality & Style',
  since: '1989',
  footerLinks: 'sunfront.com.mv · webseytu.com',
  footerLegal: '© 2026 SunFront Pvt Ltd. Independent campaign, not affiliated with FIFA.',
};

// Activity feed for admin overview.
const ADMIN_ACTIVITY = [
  { t: NOW - 1000 * 60 * 2,  kind: 'predict',  text: 'Ahmed H. picked Argentina vs Brazil → Argentina', outlet: 'LIVIN' },
  { t: NOW - 1000 * 60 * 5,  kind: 'predict',  text: 'Aishath N. picked France vs Germany → Draw',      outlet: 'SCOPE' },
  { t: NOW - 1000 * 60 * 9,  kind: 'predict',  text: 'Mohamed S. picked England vs Netherlands → England', outlet: 'LIGHTIN' },
  { t: NOW - 1000 * 60 * 18, kind: 'system',   text: 'Match status sync ran — 1 → OPEN, 0 → CLOSED' },
  { t: NOW - 1000 * 60 * 25, kind: 'predict',  text: 'Fathimath R. picked Morocco vs Belgium → Morocco', outlet: 'SunFront' },
  { t: NOW - 1000 * 60 * 35, kind: 'settle',   text: 'Croatia vs Uruguay settled — Croatia 2–1' },
  { t: NOW - 1000 * 60 * 48, kind: 'draw',     text: 'Lucky draw run for MEX vs CAN — 10 winners' },
  { t: NOW - 1000 * 60 * 72, kind: 'predict',  text: 'Hassan L. picked Spain vs Portugal → Spain', outlet: 'LIVIN' },
];

const STAGES = ['Group Stage', 'Round of 32', 'Round of 16', 'Quarter-final', 'Semi-final', 'Third place', 'Final'];

Object.assign(window, { SAMPLE_PREDICTIONS, SITE_CONTENT_DEFAULTS, ADMIN_ACTIVITY, STAGES });
