<?php
// api/marcar_notif_leida.php
require_once __DIR__ . '/../config/app.php';
require_once __DIR__ . '/../includes/auth.php';
require_once __DIR__ . '/../includes/functions.php';

header('Content-Type: application/json; charset=utf-8');

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['ok' => false, 'msg' => 'Método no permitido']);
    exit;
}

$user = currentUser();
if (!$user) {
    echo json_encode(['ok' => false, 'msg' => 'No autenticado']);
    exit;
}

$db     = getDB();
$idUser = (int)$user['id'];
$idNotif = (int)($_POST['id_notif'] ?? 0);

try {
    if ($idNotif < 0) {
        // Notificación virtual — no se almacena, retornar OK sin hacer nada
        echo json_encode(['ok' => true, 'virtual' => true]);
        exit;
    }

    if ($idNotif === 0) {
        // Marcar TODAS las notificaciones del usuario como leídas
        $st = $db->prepare("
            UPDATE notificaciones
            SET    leida = 1
            WHERE  id_usuario = :uid AND leida = 0
        ");
        $st->execute([':uid' => $idUser]);
    } else {
        // Marcar una notificación específica como leída
        // Verificar que pertenece al usuario actual (seguridad)
        $st = $db->prepare("
            UPDATE notificaciones
            SET    leida = 1
            WHERE  id_notif   = :id
              AND  id_usuario  = :uid
              AND  leida       = 0
        ");
        $st->execute([':id' => $idNotif, ':uid' => $idUser]);
    }

    echo json_encode(['ok' => true, 'afectadas' => $st->rowCount()]);

} catch (Exception $e) {
    echo json_encode(['ok' => false, 'msg' => 'Error: ' . $e->getMessage()]);
}