<?php

declare(strict_types=1);

require_once dirname(__DIR__) . '/includes/bootstrap.php';
require_login();

$pageTitle = 'Seguimiento';
$currentNav = 'seguimiento';

$campeonatoId = (int) ($_GET['campeonato_id'] ?? 0);
$equipoId = (int) ($_GET['equipo_id'] ?? 0);

$cams = db()->query('SELECT id, nombre FROM campeonatos ORDER BY nombre')->fetchAll();

$equipos = [];
if ($campeonatoId > 0) {
    $st = db()->prepare(
        "SELECT e.id, e.nombre
         FROM campeonato_equipo ce
         INNER JOIN equipos e ON e.id = ce.equipo_id
         WHERE ce.campeonato_id = ? AND ce.estado IN ('inscrito','activo')
         ORDER BY e.nombre"
    );
    $st->execute([$campeonatoId]);
    $equipos = $st->fetchAll();
}

$idsEquipo = array_map(static fn ($r) => (int) $r['id'], $equipos);
if ($equipoId > 0 && !in_array($equipoId, $idsEquipo, true)) {
    $equipoId = 0;
}

$nombreEquipoSel = '';
foreach ($equipos as $eq) {
    if ((int) $eq['id'] === $equipoId) {
        $nombreEquipoSel = (string) $eq['nombre'];
        break;
    }
}

$partidos = [];
if ($campeonatoId > 0 && $equipoId > 0) {
    $sql = 'SELECT p.id, p.jornada, p.ronda, p.fecha_programada, p.fecha_real, p.estado,
                   p.goles_local, p.goles_visitante, p.notas,
                   p.equipo_local_id, p.equipo_visitante_id,
                   el.nombre AS local_nombre, ev.nombre AS visitante_nombre,
                   es.nombre AS estadio_nombre
            FROM partidos p
            INNER JOIN equipos el ON el.id = p.equipo_local_id
            INNER JOIN equipos ev ON ev.id = p.equipo_visitante_id
            LEFT JOIN estadios es ON es.id = p.estadio_id
            WHERE p.campeonato_id = ?
              AND (p.equipo_local_id = ? OR p.equipo_visitante_id = ?)
            ORDER BY p.fecha_programada ASC, p.id ASC';
    $st = db()->prepare($sql);
    $st->execute([$campeonatoId, $equipoId, $equipoId]);
    $partidos = $st->fetchAll();
}

require dirname(__DIR__) . '/includes/layout/header.php';
?>

<div class="card" style="margin-bottom:1.25rem;">
  <div class="card-header">
    <h2><i class="fa-solid fa-filter" style="margin-right:0.45rem;opacity:0.85;" aria-hidden="true"></i>Filtros</h2>
  </div>
  <form method="get" class="form-grid cols-2" action="">
    <div>
      <label class="field" for="campeonato_id">Campeonato</label>
      <select id="campeonato_id" name="campeonato_id" onchange="this.form.equipo_id.value=''; this.form.submit();">
        <option value="0">— Elegir campeonato —</option>
        <?php foreach ($cams as $c) : ?>
          <option value="<?= (int) $c['id'] ?>" <?= $campeonatoId === (int) $c['id'] ? 'selected' : '' ?>><?= h($c['nombre']) ?></option>
        <?php endforeach; ?>
      </select>
    </div>
    <div>
      <label class="field" for="equipo_id">Equipo</label>
      <select id="equipo_id" name="equipo_id" onchange="this.form.submit();" <?= $campeonatoId ? '' : 'disabled' ?>>
        <option value="0">— Elegir equipo —</option>
        <?php foreach ($equipos as $e) : ?>
          <option value="<?= (int) $e['id'] ?>" <?= $equipoId === (int) $e['id'] ? 'selected' : '' ?>><?= h($e['nombre']) ?></option>
        <?php endforeach; ?>
      </select>
    </div>
  </form>
  <?php if (!$campeonatoId) : ?>
    <p style="padding:0 1.25rem 1.25rem;margin:0;color:#64748b;font-size:0.9rem;">Selecciona un campeonato para cargar los equipos inscritos.</p>
  <?php elseif (!$equipoId) : ?>
    <p style="padding:0 1.25rem 1.25rem;margin:0;color:#64748b;font-size:0.9rem;">Elige un equipo para ver su calendario y resultados.</p>
  <?php endif; ?>
</div>

<?php if ($campeonatoId && $equipoId) : ?>
<div class="card">
  <div class="card-header">
    <h2>
      <i class="fa-solid fa-book-open-reader" style="margin-right:0.45rem;opacity:0.85;" aria-hidden="true"></i>
      Programación: <?= h($nombreEquipoSel) ?>
    </h2>
  </div>
  <?php if (!$partidos) : ?>
    <div class="empty-state">No hay partidos programados para este equipo en el campeonato.</div>
  <?php else : ?>
    <div class="table-wrap">
      <table class="data-table">
        <thead>
          <tr>
            <th>Jorn.</th>
            <th>Fecha</th>
            <th>Condición</th>
            <th>Rival</th>
            <th>Marcador</th>
            <th>Estado</th>
            <th>Estadio</th>
            <th>Notas</th>
          </tr>
        </thead>
        <tbody>
          <?php foreach ($partidos as $p) :
              $esLocal = (int) $p['equipo_local_id'] === $equipoId;
              $rival = $esLocal ? $p['visitante_nombre'] : $p['local_nombre'];
              $cond = $esLocal ? 'Local' : 'Visita';
              $marcador = (int) $p['goles_local'] . ' — ' . (int) $p['goles_visitante'];
              $est = (string) $p['estado'];
              $cls = $est === 'finalizado' ? 'badge-ok' : ($est === 'programado' ? 'badge-muted' : 'badge-warn');
              ?>
          <tr>
            <td><?= $p['jornada'] !== null && $p['jornada'] !== '' ? h((string) (int) $p['jornada']) : '—' ?></td>
            <td>
              <?= h($p['fecha_programada']) ?>
              <?php if (!empty($p['fecha_real'])) : ?>
                <br><small style="color:#64748b;">Real: <?= h((string) $p['fecha_real']) ?></small>
              <?php endif; ?>
              <?php if (!empty($p['ronda'])) : ?>
                <br><small style="color:#64748b;"><?= h((string) $p['ronda']) ?></small>
              <?php endif; ?>
            </td>
            <td><span class="badge badge-muted"><?= h($cond) ?></span></td>
            <td><strong><?= h($rival) ?></strong></td>
            <td style="font-weight:700;"><?= h($marcador) ?></td>
            <td><span class="badge <?= $cls ?>"><?= h($est) ?></span></td>
            <td><?= h($p['estadio_nombre'] ?? '—') ?></td>
            <td style="font-size:0.85rem;color:#64748b;max-width:200px;">
              <?php if (!empty($p['notas'])) : ?>
                <i class="fa-solid fa-note-sticky" aria-hidden="true"></i> <?= h((string) $p['notas']) ?>
              <?php else : ?>
                —
              <?php endif; ?>
            </td>
          </tr>
          <?php endforeach; ?>
        </tbody>
      </table>
    </div>
  <?php endif; ?>
</div>
<?php endif; ?>

<?php require dirname(__DIR__) . '/includes/layout/footer.php'; ?>
