<?php
// ============================================
// SEN RDV SANTÉ+ — Liste et gestion des alertes du patient
// GET    /api/alertes/liste.php       → voir mes alertes
// DELETE /api/alertes/liste.php?id=1  → désactiver une alerte
// Headers: Authorization: Bearer {token patient}
// ============================================

require_once '../config/helpers.php';   // ← TOUJOURS en premier
require_once '../config/database.php';

$userConnecte = verifierToken();

if ($userConnecte['role'] !== 'patient') {
    repondre(['erreur' => 'Accès réservé aux patients'], 403);
}

$db     = getDB();
$method = $_SERVER['REQUEST_METHOD'];

// ── GET : liste des alertes du patient ──
if ($method === 'GET') {
    $stmt = $db->prepare("
        SELECT a.id, a.perimetre, a.rayon_km, a.actif, a.created_at,
               s.nom AS service_nom,
               h.nom AS hopital_nom
        FROM alertes_disponibilite a
        JOIN services s ON s.id = a.service_id
        JOIN hopitaux h ON h.id = s.hopital_id
        WHERE a.patient_id = ?
        ORDER BY a.created_at DESC
    ");
    $stmt->execute([$userConnecte['utilisateur_id']]);

    repondre([
        'succes'  => true,
        'alertes' => $stmt->fetchAll()
    ]);
}

// ── DELETE : désactiver une alerte ──
if ($method === 'DELETE') {
    if (empty($_GET['id'])) {
        repondre(['erreur' => "id de l'alerte obligatoire"], 422);
    }

    $stmt = $db->prepare("
        SELECT id FROM alertes_disponibilite
        WHERE id = ? AND patient_id = ?
    ");
    $stmt->execute([$_GET['id'], $userConnecte['utilisateur_id']]);

    if (!$stmt->fetch()) {
        repondre(['erreur' => 'Alerte introuvable'], 404);
    }

    $db->prepare("UPDATE alertes_disponibilite SET actif = 0 WHERE id = ?")
       ->execute([$_GET['id']]);

    repondre(['succes' => true, 'message' => 'Alerte désactivée avec succès']);
}

repondre(['erreur' => 'Méthode non autorisée'], 405);