<?php
require_once dirname(__DIR__) . '/inc/auth.php';
require_once __DIR__ . '/_layout.php';
$db = db();

// La table peut ne pas exister tant qu'aucun message n'a été reçu
function msg_table_ok(PDO $db): bool {
    try { return (bool)$db->query("SELECT name FROM sqlite_master WHERE type='table' AND name='messages_contact'")->fetchColumn(); }
    catch (Exception $e) { return false; }
}

$flash = '';
if ($_SERVER['REQUEST_METHOD']==='POST' && csrf_check($_POST['csrf']??null) && msg_table_ok($db)) {
    $id  = (int)($_POST['id'] ?? 0);
    $act = $_POST['act'] ?? '';
    if ($act==='lu')        { $db->prepare('UPDATE messages_contact SET lu=1 WHERE id=?')->execute([$id]); $flash='Message marqué comme lu.'; }
    elseif ($act==='nonlu') { $db->prepare('UPDATE messages_contact SET lu=0 WHERE id=?')->execute([$id]); $flash='Message marqué comme non lu.'; }
    elseif ($act==='suppr') { $db->prepare('DELETE FROM messages_contact WHERE id=?')->execute([$id]); $flash='Message supprimé.'; }
}

$messages = msg_table_ok($db)
    ? $db->query("SELECT * FROM messages_contact ORDER BY cree_le DESC")->fetchAll()
    : [];
$nonLus = 0; foreach ($messages as $m) { if (empty($m['lu'])) $nonLus++; }

layout_start('Messages reçus', 'messages');
$tok = csrf_token();
?>
<?php if ($flash): ?><div class="panel" style="border-left:3px solid var(--ok)"><?= e($flash) ?></div><?php endif; ?>

<div class="panel">
  <h2>Messages du formulaire de contact (<?= count($messages) ?> · <?= $nonLus ?> non lu<?= $nonLus>1?'s':'' ?>)</h2>
  <p style="color:var(--ink2);margin-bottom:1rem">
    Chaque message envoyé via le formulaire de contact est enregistré ici <b>et</b> notifié par e-mail
    à <?= e(implode(' et ', contact_emails())) ?>. Cette page reste votre filet de sécurité :
    même si un e-mail n'arrive pas (spam, panne du serveur de mail…), le message est conservé ici.
  </p>

  <?php if (!$messages): ?>
    <p style="color:var(--ink2)">Aucun message pour l'instant.</p>
  <?php else: foreach ($messages as $m):
    $lu = !empty($m['lu']);
    $notif = !empty($m['notifie']);
  ?>
    <div class="mod-item" style="border:1px solid var(--line);border-radius:8px;padding:1.2rem;margin-bottom:1rem;<?= $lu?'':'background:#fffdf5;border-left:3px solid var(--blue,#1f4e79)' ?>">
      <div style="color:var(--ink2);font-size:.85rem;margin-bottom:.5rem;display:flex;gap:.6rem;flex-wrap:wrap;align-items:center">
        <b style="color:var(--ink)"><?= e($m['nom'] ?: 'Anonyme') ?></b>
        <?php if (!empty($m['email'])): ?>· <a href="mailto:<?= e($m['email']) ?>"><?= e($m['email']) ?></a><?php endif; ?>
        · <?= e($m['cree_le']) ?>
        <?php if (!$lu): ?><span class="badge draft">non lu</span><?php endif; ?>
        <?php if ($notif): ?><span class="badge pub" title="Notification e-mail envoyée">✓ e-mail envoyé</span>
        <?php else: ?><span class="badge draft" title="L'e-mail n'a pas pu être envoyé — le message est tout de même conservé ici">⚠ e-mail non envoyé</span><?php endif; ?>
      </div>
      <div style="background:#fafafa;border-radius:6px;padding:1rem;margin-bottom:.8rem;white-space:pre-wrap"><?= e($m['message']) ?></div>
      <form method="post" style="display:flex;gap:.6rem;align-items:center;flex-wrap:wrap">
        <input type="hidden" name="csrf" value="<?= e($tok) ?>">
        <input type="hidden" name="id" value="<?= (int)$m['id'] ?>">
        <?php if (!empty($m['email'])): ?>
          <a class="btn j sm" href="mailto:<?= e($m['email']) ?>?subject=<?= rawurlencode('Re: votre message — Tuina Loygue') ?>">Répondre</a>
        <?php endif; ?>
        <?php if ($lu): ?>
          <button class="btn ghost sm" name="act" value="nonlu">Marquer non lu</button>
        <?php else: ?>
          <button class="btn sm" name="act" value="lu">Marquer lu</button>
        <?php endif; ?>
        <button class="btn r sm" name="act" value="suppr" onclick="return confirm('Supprimer définitivement ce message ?')">Supprimer</button>
      </form>
    </div>
  <?php endforeach; endif; ?>
</div>
<?php layout_end(); ?>
