import { useState } from "react"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; // Ahora incluye ingreso de resultados y tabla de posiciones export default function FixtureCalculator() { const zonaNorte = [ "ADA Jaén","Pirata FC","Comerciantes FC","CNI","Mannucci","UCV","San Marcos","Llacuabamba","Unión Comercio" ]; const zonaSur = [ "Alianza Universidad","Unión Minas","Sport Huancayo II","Cantolao","Universidad San Martín","Ayacucho FC","Santos FC","Deportivo Binacional","EGB" ]; const [fixtures, setFixtures] = useState([]); const generarCalendario = (equipos) => { const n = equipos.length; const lista = [...equipos]; const tieneBye = n % 2 !== 0; if (tieneBye) lista.push("DESCANSA"); let rounds = []; const total = lista.length; for (let r = 0; r < total - 1; r++) { let fecha = []; for (let i = 0; i < total / 2; i++) { const local = lista[i]; const visita = lista[total - 1 - i]; if (local !== "DESCANSA" && visita !== "DESCANSA") { fecha.push(`${local} vs ${visita}`); } } rounds.push({ ida: fecha, vuelta: fecha.map(p => p.split(" vs ").reverse().join(" vs ")) }); lista.splice(1, 0, lista.pop()); } return rounds; }; }; const handleGenerar = () => { const norte = generarCalendario(zonaNorte); const sur = generarCalendario(zonaSur); setFixtures({ norte, sur }); }; // --- NUEVOS ESTADOS PARA TABLAS --- const [resultados, setResultados] = useState({ norte: {}, sur: {} }); const [tablas, setTablas] = useState({ norte: {}, sur: {} }); const registrarResultado = (zona, fechaIdx, partidoIdx, golesLocal, golesVisita, local, visita) => { const key = `${fechaIdx}-${partidoIdx}`; const nuevos = { ...resultados[zona], [key]: { golesLocal, golesVisita, local, visita } }; setResultados({ ...resultados, [zona]: nuevos }); recalcularTabla(zona, nuevos); }; const recalcularTabla = (zona, res) => { const tabla = {}; const equipos = zona === "norte" ? zonaNorte : zonaSur; equipos.forEach(e => (tabla[e] = { pts: 0, gf: 0, gc: 0, dg: 0 })); Object.values(res).forEach(r => { tabla[r.local].gf += r.golesLocal; tabla[r.local].gc += r.golesVisita; tabla[r.local].dg = tabla[r.local].gf - tabla[r.local].gc; tabla[r.visita].gf += r.golesVisita; tabla[r.visita].gc += r.golesLocal; tabla[r.visita].dg = tabla[r.visita].gf - tabla[r.visita].gc; if (r.golesLocal > r.golesVisita) tabla[r.local].pts += 3; else if (r.golesLocal < r.golesVisita) tabla[r.visita].pts += 3; else { tabla[r.local].pts++; tabla[r.visita].pts++; } }); setTablas({ ...tablas, [zona]: tabla }); }; return (