/* Verificação manual da fonte real (CC-1-14 / PP-10). Não faz parte da suíte:
 * depende de rede, de cota e do calendário real. Rodar com:
 *   npx ts-node -r dotenv/config scripts/verificar-fonte-real.ts
 */
import { FootballDataAdapter } from '../src/fonte-dados/football-data.adapter';

async function main() {
  const token = process.env.FOOTBALL_DATA_TOKEN;
  if (!token) throw new Error('FOOTBALL_DATA_TOKEN ausente');
  const fonte = new FootballDataAdapter(token);

  const comps = await fonte.listarCompeticoes();
  console.log(`competições (liga): ${comps.length}`);
  const bsa = comps.find((c) => c.code === 'BSA');
  console.log('BSA:', bsa);

  const inicio = Date.now();
  const jogos = await fonte.listarJogos('BSA', 23, 25);
  console.log(`jogos 23-25: ${jogos.length} em ${Date.now() - inicio}ms`);
  console.log('primeiro:', {
    id: jogos[0].externalId,
    rodada: jogos[0].rodada,
    times: `${jogos[0].timeCasa} x ${jogos[0].timeFora}`,
    inicioEm: jogos[0].inicioEm.toISOString(),
    status: jogos[0].status,
  });

  const cache = Date.now();
  await fonte.listarJogos('BSA', 30, 30);
  console.log(`segunda leitura (cache): ${Date.now() - cache}ms`);

  const passadas = await fonte.listarJogos('BSA', 1, 3);
  const apuradas = passadas.filter((j) => j.golsCasa !== null).length;
  console.log(`rodadas 1-3: ${passadas.length} jogos, ${apuradas} com placar`);

  const temporada = await fonte.listarJogos('BSA', 1, 38);
  const adiados = temporada.filter((j) => j.status === 'POSTPONED');
  console.log(`temporada: ${temporada.length} jogos, ${adiados.length} adiados`);
  if (adiados[0]) {
    console.log('adiado de exemplo:', `${adiados[0].timeCasa} x ${adiados[0].timeFora}`, adiados[0].rodada);
  }

  const semRodada = temporada.filter((j) => !Number.isInteger(j.rodada));
  console.log(`registros sem rodada: ${semRodada.length}`);
  const semTime = temporada.filter((j) => !j.timeCasa || !j.timeFora);
  console.log(`registros sem time: ${semTime.length}`);
}

main().catch((e) => {
  console.error('FALHOU:', e.message);
  process.exit(1);
});
