<?php
/**
 * logoutController.php — Sprint 4 + Fix 15A
 *
 * Sprint 4: Eliminado session_regenerate_id() post-destroy
 * Fix 15A:  Agrega parametro ?from=delegado para forzar redirect
 *           correcto cuando la sesion tiene adm por error de contexto
 */
namespace app\controller;

session_start();

$isAdmin     = !empty($_SESSION['adm']);
$module      = isset($_GET['module']) ? strtolower(trim($_GET['module'])) : '';
$from        = isset($_GET['from'])   ? strtolower(trim($_GET['from']))   : '';
$wasAdmin    = $isAdmin;

unset($_SESSION['user_id'], $_SESSION['adm'], $_SESSION['role']);
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(), '', 0, '/');

// Si viene con ?from=delegado siempre va al login de delegados
// Esto cubre el caso donde adm queda en sesion por error de contexto
if ($from === 'delegado') {
    header("Location: ../../index.php");
} elseif ($wasAdmin) {
    if ($module === 'resultados') {
        header("Location: ../../resultados/index.php");
    } else {
        header("Location: ../../administradores/index.php");
    }
} else {
    header("Location: ../../index.php");
}
exit;
