<?php

declare(strict_types=1);

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

$pageTitle = 'Plantillas por campeonato';
$currentNav = 'plantilla';

$ceSel = (int) ($_GET['ce_id'] ?? 0);

$inscripciones = db()->query(
    'SELECT ce.id, c.nombre AS campeonato, e.nombre AS equipo
     FROM campeonato_equipo ce
     INNER JOIN campeonatos c ON c.id = ce.campeonato_id
     INNER JOIN equipos e ON e.id = ce.equipo_id
     ORDER BY c.nombre, e.nombre'
)->fetchAll();

if ($_SERVER['REQUEST_METHOD'] === 'POST' && can_manage_data()) {
    verify_csrf();
    $action = $_POST['action'] ?? '';
    if ($action === 'delete') {
        db()->prepare('DELETE FROM plantilla WHERE id = ?')->execute([(int) ($_POST['id'] ?? 0)]);
        flash('ok', 'Jugador retirado de la plantilla.');
        $ce = (int) ($_POST['ce_id'] ?? 0);
        redirect('/pages/plantilla.php?ce_id=' . $ce);
    }
    if ($action === 'add') {
        $ceid = (int) ($_POST['campeonato_equipo_id'] ?? 0);
        $jid = (int) ($_POST['jugador_id'] ?? 0);
        $dorsal = ($_POST['dorsal'] ?? '') !== '' ? (int) $_POST['dorsal'] : null;
        $pos = trim((string) ($_POST['posicion'] ?? ''));
        if ($ceid && $jid) {
            try {
                db()->prepare(
                    'INSERT INTO plantilla (campeonato_equipo_id, jugador_id, dorsal, posicion, fecha_alta, estado)
                     VALUES (?,?,?,?,CURDATE(),\'activo\')'
                )->execute([$ceid, $jid, $dorsal, $pos ?: null]);
                flash('ok', 'Jugador añadido a la plantilla.');
            } catch (Throwable $e) {
                flash('err', 'No se pudo añadir (¿ya está en la plantilla?).');
            }
        }
        redirect('/pages/plantilla.php?ce_id=' . $ceid);
    }
}

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

$plantilla = [];
if ($ceSel) {
    $st = db()->prepare(
        'SELECT pl.id, pl.dorsal, pl.posicion, pl.estado, j.nombre, j.apellidos
         FROM plantilla pl
         INNER JOIN jugadores j ON j.id = pl.jugador_id
         WHERE pl.campeonato_equipo_id = ?
         ORDER BY pl.dorsal, j.apellidos'
    );
    $st->execute([$ceSel]);
    $plantilla = $st->fetchAll();
}

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

<?php if (flash('ok')) : ?>
  <div class="alert alert-success"><?= h((string) flash('ok')) ?></div>
<?php endif; ?>
<?php if (flash('err')) : ?>
  <div class="alert alert-error"><?= h((string) flash('err')) ?></div>
<?php endif; ?>

<div class="card" style="margin-bottom:1rem;">
  <div class="card-header"><h2>Inscripción (equipo en torneo)</h2></div>
  <form method="get" class="form-grid" style="padding:1rem 1.25rem;max-width:560px;">
    <div>
      <label class="field" for="ce_id">Seleccionar</label>
      <select id="ce_id" name="ce_id" onchange="this.form.submit()">
        <option value="0">— Elegir equipo en campeonato —</option>
        <?php foreach ($inscripciones as $i) : ?>
          <option value="<?= (int) $i['id'] ?>" <?= $ceSel === (int) $i['id'] ? 'selected' : '' ?>>
            <?= h($i['campeonato']) ?> — <?= h($i['equipo']) ?>
          </option>
        <?php endforeach; ?>
      </select>
    </div>
  </form>
</div>

<?php if ($ceSel && can_manage_data()) : ?>
<div class="card" style="margin-bottom:1.5rem;">
  <div class="card-header"><h2>Añadir a plantilla</h2></div>
  <form method="post" class="form-grid cols-2">
    <?= csrf_field() ?>
    <input type="hidden" name="action" value="add">
    <input type="hidden" name="campeonato_equipo_id" value="<?= (int) $ceSel ?>">
    <div>
      <label class="field" for="jugador_id">Jugador</label>
      <select id="jugador_id" name="jugador_id" required>
        <option value="">— Elegir —</option>
        <?php foreach ($jugadores as $j) : ?>
          <option value="<?= (int) $j['id'] ?>"><?= h($j['apellidos'] . ', ' . $j['nombre']) ?></option>
        <?php endforeach; ?>
      </select>
    </div>
    <div>
      <label class="field" for="dorsal">Dorsal</label>
      <input type="number" id="dorsal" name="dorsal" min="1" max="99">
    </div>
    <div style="grid-column:1/-1;">
      <label class="field" for="posicion">Posición</label>
      <input type="text" id="posicion" name="posicion" placeholder="Portero, defensa…">
    </div>
    <div class="form-actions" style="grid-column:1/-1;">
      <button type="submit" class="btn btn-primary">Añadir</button>
    </div>
  </form>
</div>
<?php endif; ?>

<?php if ($ceSel) : ?>
<div class="card">
  <div class="card-header"><h2>Jugadores habilitados</h2></div>
  <div class="table-wrap">
    <table class="data-table">
      <thead>
        <tr>
          <th>Dorsal</th>
          <th>Jugador</th>
          <th>Posición</th>
          <th>Estado</th>
          <th></th>
        </tr>
      </thead>
      <tbody>
        <?php foreach ($plantilla as $p) : ?>
          <tr>
            <td><?= h((string) ($p['dorsal'] ?? '—')) ?></td>
            <td><?= h($p['apellidos'] . ', ' . $p['nombre']) ?></td>
            <td><?= h($p['posicion'] ?? '—') ?></td>
            <td><span class="badge badge-muted"><?= h($p['estado']) ?></span></td>
            <td>
              <?php if (can_manage_data()) : ?>
                <form method="post" style="display:inline;" onsubmit="return confirm('¿Quitar de plantilla?');">
                  <?= csrf_field() ?>
                  <input type="hidden" name="action" value="delete">
                  <input type="hidden" name="id" value="<?= (int) $p['id'] ?>">
                  <input type="hidden" name="ce_id" value="<?= (int) $ceSel ?>">
                  <button type="submit" class="btn btn-danger" style="padding:0.25rem 0.5rem;font-size:0.8rem;">Quitar</button>
                </form>
              <?php endif; ?>
            </td>
          </tr>
        <?php endforeach; ?>
      </tbody>
    </table>
  </div>
  <?php if (!$plantilla) : ?><div class="empty-state">Plantilla vacía.</div><?php endif; ?>
</div>
<?php elseif (!$ceSel) : ?>
  <div class="empty-state card" style="padding:2rem;">Selecciona un equipo en un campeonato para ver o editar la plantilla.</div>
<?php endif; ?>

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