<?php
/**
 * pages/avisos-lista.php — Listado público de todos los avisos publicados.
 */
require_once __DIR__ . '/../config/conn.php';

$page_title  = 'Avisos institucionales';
$meta_desc   = 'Comunicados, avisos y novedades institucionales de Servicios DEMO Seguridad Privada.';
$current_page = 'avisos';

require_once __DIR__ . '/../includes/banner.php';   // define $base
require_once __DIR__ . '/../includes/navbar.php';

// Paginación
$per_page = 12;
$page     = max(1, (int)($_GET['p'] ?? 1));
$offset   = ($page - 1) * $per_page;

$total_q = $conn->query("SELECT COUNT(*) AS n FROM av_avisos WHERE estado='publicado' AND fecha_publicacion <= CURDATE()");
$total   = (int)$total_q->fetch_assoc()['n'];
$pages   = (int)ceil($total / $per_page);

$stmt = $conn->prepare(
    "SELECT id, titulo, resumen, fecha_publicacion, banner_path, banner_alt
     FROM av_avisos
     WHERE estado = 'publicado' AND fecha_publicacion <= CURDATE()
     ORDER BY fecha_publicacion DESC, id DESC
     LIMIT ? OFFSET ?"
);
$stmt->bind_param('ii', $per_page, $offset);
$stmt->execute();
$avisos = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
$stmt->close();

// Fecha en español
function fecha_es_l(string $fecha): string
{
    $meses = ['','enero','febrero','marzo','abril','mayo','junio',
              'julio','agosto','septiembre','octubre','noviembre','diciembre'];
    [$y, $m, $d] = explode('-', $fecha);
    return (int)$d . ' de ' . $meses[(int)$m] . ' de ' . $y;
}
?>

<!-- ── LISTADO DE AVISOS ──────────────────────────────────── -->
<section class="section section-white">
  <div class="wrapper">

    <div class="section-head centered">
      <div class="section-eyebrow">Comunicados institucionales</div>
      <h2 class="section-title">Avisos</h2>
      <div class="section-rule"></div>
    </div>

    <?php if (empty($avisos)): ?>
      <p style="text-align:center;color:var(--c-muted);padding:2rem 0">No hay avisos publicados por el momento.</p>
    <?php else: ?>
    <div class="avisos-grid">
      <?php foreach ($avisos as $a): ?>
      <article class="aviso-card<?= $a['banner_path'] ? ' aviso-card--img' : '' ?>">
        <?php if ($a['banner_path']): ?>
          <div class="aviso-card-img">
            <img src="<?= htmlspecialchars($base . $a['banner_path'], ENT_QUOTES) ?>"
                 alt="<?= htmlspecialchars($a['banner_alt'] ?? $a['titulo'], ENT_QUOTES) ?>"
                 loading="lazy">
          </div>
        <?php endif; ?>
        <time class="aviso-date"><?= fecha_es_l($a['fecha_publicacion']) ?></time>
        <h3><?= htmlspecialchars($a['titulo'], ENT_QUOTES) ?></h3>
        <?php if ($a['resumen']): ?>
          <p><?= htmlspecialchars($a['resumen'], ENT_QUOTES) ?></p>
        <?php endif; ?>
        <a href="<?= $base ?>pages/aviso.php?id=<?= $a['id'] ?>" class="read-more">Leer aviso completo ›</a>
      </article>
      <?php endforeach; ?>
    </div>

    <!-- Paginación -->
    <?php if ($pages > 1): ?>
    <div style="display:flex;justify-content:center;gap:.5rem;margin-top:2.5rem;flex-wrap:wrap">
      <?php if ($page > 1): ?>
        <a href="?p=<?= $page - 1 ?>" class="btn btn-outline">← Anterior</a>
      <?php endif; ?>
      <?php for ($i = 1; $i <= $pages; $i++): ?>
        <a href="?p=<?= $i ?>"
           class="btn <?= $i === $page ? 'btn-primary' : 'btn-outline' ?>">
          <?= $i ?>
        </a>
      <?php endfor; ?>
      <?php if ($page < $pages): ?>
        <a href="?p=<?= $page + 1 ?>" class="btn btn-outline">Siguiente →</a>
      <?php endif; ?>
    </div>
    <?php endif; ?>

    <?php endif; ?>

  </div>
</section>

<style>
.aviso-card--img { padding-top: 0; overflow: hidden; }
.aviso-card-img  { margin: -1.4rem -1.4rem 1rem; }
.aviso-card-img img { width: 100%; height: 160px; object-fit: cover; display: block; }
</style>

<?php require_once __DIR__ . '/../includes/footer.php'; ?>
