<?php
require_once 'includes/auth.php';
require_once 'config/database.php';
require_once 'includes/functions.php';

$projet_id = filter_input(INPUT_GET, 'projet_id', FILTER_VALIDATE_INT);
if (!$projet_id) {
    die("Projet invalide.");
}

$pdo = getPDO();

$stmt = $pdo->prepare("SELECT nom FROM projets WHERE id = ?");
$stmt->execute([$projet_id]);
$projet = $stmt->fetch();
if (!$projet) {
    die("Projet introuvable.");
}

$show_deleted = filter_input(INPUT_GET, 'deleted', FILTER_VALIDATE_BOOLEAN) ? true : false;
$sql_where = $show_deleted ? "f.deleted_at IS NOT NULL" : "f.deleted_at IS NULL";

// Ajout de description_reserve dans la requête
$sql = "SELECT f.numero_fiche, f.titre, d.nom as dossier_nom, sd.nom as sous_dossier_nom,
               f.zone, f.type_reserve, f.description_reserve, f.statut, u.nom as createur_nom,
               f.date_creation, f.date_soumission, ud.nom as deleted_by_nom, f.deleted_at
        FROM fiches f
        JOIN sous_dossiers sd ON f.sous_dossier_id = sd.id
        JOIN dossiers d ON sd.dossier_id = d.id
        LEFT JOIN users u ON f.createur_id = u.id
        LEFT JOIN users ud ON f.deleted_by = ud.id
        WHERE d.projet_id = ? AND $sql_where
        ORDER BY f.date_creation DESC";
$stmt = $pdo->prepare($sql);
$stmt->execute([$projet_id]);
$fiches = $stmt->fetchAll();

$filename = 'recap_' . $projet['nom'] . '_' . date('Ymd') . '.csv';
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename="' . $filename . '"');

$output = fopen('php://output', 'w');
fprintf($output, chr(0xEF) . chr(0xBB) . chr(0xBF)); // UTF-8 BOM pour Excel

// En-têtes avec la nouvelle colonne
$headers = [
    'N° Fiche',
    'Titre',
    'Dossier',
    'Sous-dossier',
    'Zone',
    'Type',
    'Description des réserves',
    'Statut',
    'Créateur',
    'Date création',
    'Date soumission'
];
if ($show_deleted) {
    $headers[] = 'Supprimé par';
    $headers[] = 'Date suppression';
}
fputcsv($output, $headers, ';');

foreach ($fiches as $fiche) {
    $row = [
        $fiche['numero_fiche'],
        $fiche['titre'],
        $fiche['dossier_nom'],
        $fiche['sous_dossier_nom'],
        $fiche['zone'] ?? '',
        $fiche['type_reserve'],
        $fiche['description_reserve'] ?? '', // ajout
        $fiche['statut'],
        $fiche['createur_nom'] ?? '',
        date('d/m/Y', strtotime($fiche['date_creation'])),
        $fiche['date_soumission'] ? date('d/m/Y', strtotime($fiche['date_soumission'])) : ''
    ];
    if ($show_deleted) {
        $row[] = $fiche['deleted_by_nom'] ?? '';
        $row[] = $fiche['deleted_at'] ? date('d/m/Y H:i', strtotime($fiche['deleted_at'])) : '';
    }
    fputcsv($output, $row, ';');
}

fclose($output);
exit;