<?php
ob_start();
header('Content-Type: text/plain; charset=utf-8');
header("HTTP/1.0 200 OK");
register_shutdown_function(function() {
    $size = ob_get_length();
    header('Content-Length: ' . $size);
    ob_end_flush();
});


require_once 'config/database.php';

// Paramètres requis : code_utilisateur
$code_utilisateur = isset($_REQUEST['code_utilisateur']) ? trim($_REQUEST['code_utilisateur']) : '';

if (empty($code_utilisateur)) {
    die("ERR|Parametres manquants");
}

try {
    // Vérifier si l'utilisateur existe
    $stmt = $pdo->prepare("SELECT * FROM Utilisateurs WHERE code_utilisateur = ?");
    $stmt->execute([$code_utilisateur]);
    $user = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$user) {
        die("ERR|Utilisateur inconnu");
    }

    // Mise à jour de la session : fermeture propre
    // is_session_open = 'N', session_id = NULL
    // On ne touche pas à last_ticket_number ici car aucun ticket n'a été émis
    
    $stmtUpdate = $pdo->prepare("UPDATE Utilisateurs SET is_session_open = 'N', session_id = NULL, session_timestamp = NULL WHERE code_utilisateur = ?");
    $stmtUpdate->execute([$code_utilisateur]);

    // Log de la fermeture
    $stmtLog = $pdo->prepare("INSERT INTO SystemLogs (date_heure, type, code_utilisateur, SiteID, description, statut) VALUES (NOW(), 'LOGOUT', ?, ?, 'Fermeture session sans rapport (Tickets vide)', 'SUCCES')");
    $stmtLog->execute([$code_utilisateur, $user['SiteID']]);

    echo "OK|Session fermee";

} catch (Exception $e) {
    die("ERR|" . $e->getMessage());
}
?>