<?php
// ============================================
// SEN RDV SANTÉ+ — Upload justificatif (ordonnance)
// POST /api/rdv/upload_justificatif.php
// Headers: Authorization: Bearer {token}
// Form-data: rdv_id, fichier (image/pdf)
// ============================================

require_once '../config/database.php';
require_once '../config/helpers.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    repondre(['erreur' => 'Méthode non autorisée'], 405);
}

$userConnecte = verifierToken();

if (empty($_POST['rdv_id'])) {
    repondre(['erreur' => 'rdv_id obligatoire'], 422);
}

if (empty($_FILES['fichier'])) {
    repondre(['erreur' => 'Fichier manquant'], 422);
}

$db = getDB();

// je vérifie que ce RDV appartient au patient connecté
$stmt = $db->prepare("SELECT id FROM rendez_vous WHERE id = ? AND patient_id = ?");
$stmt->execute([$_POST['rdv_id'], $userConnecte['utilisateur_id']]);
if (!$stmt->fetch()) {
    repondre(['erreur' => 'RDV introuvable'], 404);
}

$fichier = $_FILES['fichier'];

// je vérifie le type de fichier — uniquement images et PDF
$typesAutorises = ['image/jpeg', 'image/png', 'image/webp', 'application/pdf'];
if (!in_array($fichier['type'], $typesAutorises)) {
    repondre(['erreur' => 'Format non autorisé — utilisez JPG, PNG ou PDF'], 422);
}

// je limite la taille à 5 Mo
if ($fichier['size'] > 5 * 1024 * 1024) {
    repondre(['erreur' => 'Fichier trop lourd — maximum 5 Mo'], 422);
}

// je génère un nom unique pour éviter les conflits
$extension = pathinfo($fichier['name'], PATHINFO_EXTENSION);
$nomFichier = 'rdv_' . $_POST['rdv_id'] . '_' . time() . '.' . $extension;
$dossier    = $_SERVER['DOCUMENT_ROOT'] . '/uploads/justificatifs/';
$chemin     = $dossier . $nomFichier;

// je crée le dossier si inexistant
if (!is_dir($dossier)) {
    mkdir($dossier, 0755, true);
}

if (!move_uploaded_file($fichier['tmp_name'], $chemin)) {
    repondre(['erreur' => 'Erreur lors de l\'upload'], 500);
}

// je sauvegarde le chemin dans la base
$stmt = $db->prepare("UPDATE rendez_vous SET justificatif_path = ? WHERE id = ?");
$stmt->execute([$nomFichier, $_POST['rdv_id']]);

repondre([
    'succes'  => true,
    'message' => 'Justificatif uploadé avec succès',
    'fichier' => $nomFichier,
    'url'     => 'https://senrdv.sendigital.org/uploads/justificatifs/' . $nomFichier,
]);