<?php

declare(strict_types=1);

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

$pageTitle = 'Equipos';
$currentNav = 'equipos';

$editRow = null;
if (isset($_GET['edit'])) {
    $st = db()->prepare('SELECT * FROM equipos WHERE id = ?');
    $st->execute([(int) $_GET['edit']]);
    $editRow = $st->fetch();
}

if ($_SERVER['REQUEST_METHOD'] === 'POST' && can_manage_data()) {
    verify_csrf();
    $action = $_POST['action'] ?? '';
    if ($action === 'delete') {
        $eid = (int) ($_POST['id'] ?? 0);
        $st = db()->prepare('SELECT escudo_url FROM equipos WHERE id = ?');
        $st->execute([$eid]);
        $oldPath = $st->fetchColumn();
        eliminar_archivo_escudo($oldPath ? (string) $oldPath : null);
        db()->prepare('DELETE FROM equipos WHERE id = ?')->execute([$eid]);
        flash('ok', 'Equipo eliminado.');
        redirect('/pages/equipos.php');
    }
    if ($action === 'save') {
        $id = (int) ($_POST['id'] ?? 0);
        $nombre = trim((string) ($_POST['nombre'] ?? ''));
        $abrev = trim((string) ($_POST['abreviatura'] ?? ''));
        $ciudad = trim((string) ($_POST['ciudad'] ?? ''));
        $activo = isset($_POST['activo']) ? 1 : 0;
        $fundadoRaw = trim((string) ($_POST['fundado'] ?? ''));
        $fundado = $fundadoRaw !== '' ? (int) $fundadoRaw : null;
        if ($fundado !== null && ($fundado < 1800 || $fundado > 2155)) {
            $fundado = null;
        }

        $escudo_url = null;
        if ($id > 0) {
            $st = db()->prepare('SELECT escudo_url FROM equipos WHERE id = ?');
            $st->execute([$id]);
            $escudo_url = $st->fetchColumn();
            $escudo_url = $escudo_url ? (string) $escudo_url : null;
        }

        if (!empty($_POST['escudo_quitar'])) {
            eliminar_archivo_escudo($escudo_url);
            $escudo_url = null;
        }

        if (isset($_FILES['escudo']) && ($_FILES['escudo']['error'] ?? UPLOAD_ERR_NO_FILE) !== UPLOAD_ERR_NO_FILE) {
            $err = (int) ($_FILES['escudo']['error'] ?? UPLOAD_ERR_NO_FILE);
            if ($err !== UPLOAD_ERR_OK) {
                flash('err', 'No se pudo subir el escudo (revisa tamaño máximo del servidor).');
            } else {
                $nuevo = guardar_escudo_subida($_FILES['escudo']);
                if ($nuevo !== null) {
                    eliminar_archivo_escudo($escudo_url);
                    $escudo_url = $nuevo;
                } else {
                    flash('err', 'Escudo no válido. Use JPG, PNG, WEBP o GIF.');
                }
            }
        }

        if ($nombre !== '') {
            if ($id > 0) {
                db()->prepare(
                    'UPDATE equipos SET nombre=?, abreviatura=?, ciudad=?, activo=?, escudo_url=?, fundado=? WHERE id=?'
                )->execute([$nombre, $abrev ?: null, $ciudad ?: null, $activo, $escudo_url, $fundado, $id]);
                flash('ok', 'Equipo actualizado.');
            } else {
                db()->prepare(
                    'INSERT INTO equipos (nombre, abreviatura, ciudad, activo, escudo_url, fundado) VALUES (?,?,?,?,?,?)'
                )->execute([$nombre, $abrev ?: null, $ciudad ?: null, $activo, $escudo_url, $fundado]);
                flash('ok', 'Equipo creado.');
            }
            redirect('/pages/equipos.php');
        }
    }
}

$lista = db()->query('SELECT * FROM equipos ORDER BY nombre')->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; ?>

<?php if (can_manage_data()) : ?>
<div class="card" style="margin-bottom:1.5rem;">
  <div class="card-header">
    <h2><?= $editRow ? 'Editar equipo' : 'Nuevo equipo' ?></h2>
    <?php if ($editRow) : ?>
      <a class="btn btn-ghost" href="<?= h(url('pages/equipos.php')) ?>">Cancelar</a>
    <?php endif; ?>
  </div>
  <form method="post" class="form-grid cols-2" enctype="multipart/form-data">
    <?= csrf_field() ?>
    <input type="hidden" name="action" value="save">
    <input type="hidden" name="id" value="<?= (int) ($editRow['id'] ?? 0) ?>">
    <div>
      <label class="field" for="nombre">Nombre</label>
      <input type="text" id="nombre" name="nombre" required value="<?= h($editRow['nombre'] ?? '') ?>">
    </div>
    <div>
      <label class="field" for="abreviatura">Abreviatura</label>
      <input type="text" id="abreviatura" name="abreviatura" maxlength="16" value="<?= h($editRow['abreviatura'] ?? '') ?>">
    </div>
    <div>
      <label class="field" for="ciudad">Ciudad</label>
      <input type="text" id="ciudad" name="ciudad" value="<?= h($editRow['ciudad'] ?? '') ?>">
    </div>
    <div>
      <label class="field" for="fundado">Fundado (año)</label>
      <input type="number" id="fundado" name="fundado" min="1800" max="2155" placeholder="Ej. 1998"
        value="<?= isset($editRow['fundado']) && $editRow['fundado'] !== null && $editRow['fundado'] !== '' ? h((string) (int) $editRow['fundado']) : '' ?>">
    </div>
    <div style="grid-column:1/-1;">
      <label class="field" for="escudo">Escudo (imagen)</label>
      <?php if (!empty($editRow['escudo_url'])) : ?>
        <div style="display:flex;align-items:center;gap:1rem;margin-bottom:0.5rem;flex-wrap:wrap;">
          <img src="<?= h(url($editRow['escudo_url'])) ?>" alt="" width="72" height="72" style="object-fit:contain;border-radius:8px;background:#f1f5f9;border:1px solid #e2e8f0;">
          <label style="display:flex;align-items:center;gap:0.35rem;cursor:pointer;font-size:0.9rem;">
            <input type="checkbox" name="escudo_quitar" value="1"> Quitar escudo actual
          </label>
        </div>
      <?php endif; ?>
      <input type="file" id="escudo" name="escudo" accept="image/jpeg,image/png,image/webp,image/gif">
      <small style="display:block;color:#64748b;margin-top:0.35rem;">JPG, PNG, WEBP o GIF. Se guarda la ruta en <code>escudo_url</code>.</small>
    </div>
    <div style="display:flex;align-items:flex-end;">
      <label style="display:flex;align-items:center;gap:0.5rem;cursor:pointer;">
        <input type="checkbox" name="activo" value="1" <?= (($editRow['activo'] ?? 1) ? 'checked' : '') ?>>
        Activo
      </label>
    </div>
    <div class="form-actions" style="grid-column:1/-1;padding:0 1.25rem 1.25rem;">
      <button type="submit" class="btn btn-primary">Guardar</button>
    </div>
  </form>
</div>
<?php endif; ?>

<div class="card">
  <div class="card-header"><h2>Clubes registrados</h2></div>
  <div class="table-wrap">
    <table class="data-table">
      <thead>
        <tr>
          <th></th>
          <th>Nombre</th>
          <th>Abrev.</th>
          <th>Ciudad</th>
          <th>Fundado</th>
          <th>Activo</th>
          <th></th>
        </tr>
      </thead>
      <tbody>
        <?php foreach ($lista as $row) : ?>
          <tr>
            <td style="width:56px;">
              <?php if (!empty($row['escudo_url'])) : ?>
                <img src="<?= h(url($row['escudo_url'])) ?>" alt="" width="40" height="40" style="object-fit:contain;border-radius:6px;background:#f8fafc;">
              <?php else : ?>
                <span style="display:inline-block;width:40px;height:40px;border-radius:6px;background:#e2e8f0;"></span>
              <?php endif; ?>
            </td>
            <td><?= h($row['nombre']) ?></td>
            <td><?= h($row['abreviatura'] ?? '—') ?></td>
            <td><?= h($row['ciudad'] ?? '—') ?></td>
            <td><?= isset($row['fundado']) && $row['fundado'] !== null && $row['fundado'] !== '' ? h((string) (int) $row['fundado']) : '—' ?></td>
            <td><?= (int) $row['activo'] ? 'Sí' : 'No' ?></td>
            <td>
              <?php if (can_manage_data()) : ?>
                <a href="<?= h(url('pages/equipos.php?edit=' . (int) $row['id'])) ?>">Editar</a>
                <form method="post" style="display:inline;margin-left:0.5rem;" onsubmit="return confirm('¿Eliminar equipo?');">
                  <?= csrf_field() ?>
                  <input type="hidden" name="action" value="delete">
                  <input type="hidden" name="id" value="<?= (int) $row['id'] ?>">
                  <button type="submit" class="btn btn-danger" style="padding:0.25rem 0.5rem;font-size:0.8rem;">Eliminar</button>
                </form>
              <?php endif; ?>
            </td>
          </tr>
        <?php endforeach; ?>
      </tbody>
    </table>
  </div>
  <?php if (!$lista) : ?><div class="empty-state">No hay equipos.</div><?php endif; ?>
</div>

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