<?php
session_start();

// Registrar logout ANTES de destruir a sessão
if (isset($_SESSION['id'], $_SESSION['role'])) {
    require_once 'conexao.php'; // Para $pdo
    // require_once 'env.php'; // Se conexao.php não carregar

    if ($pdo) { // Verifica se $pdo está disponível
        $usuario_id_log = $_SESSION['id'];
        $role_log = $_SESSION['role'];
        $role_map_hist = ['Empresas' => 'empresa', 'Candidatos' => 'candidato', 'Administradores' => 'admin', 'Administrador' => 'admin'];
        $tipo_usuario_hist = $role_map_hist[$role_log] ?? 'desconhecido';
        $pagina_acessada_log = 'logout.php (ação de logout)';

        try {
            $stmt_hist = $pdo->prepare("INSERT INTO historico_acessos (usuario_id, tipo_usuario, pagina_acessada, data_acesso) VALUES (?, ?, ?, NOW())");
            $stmt_hist->execute([$usuario_id_log, $tipo_usuario_hist, $pagina_acessada_log]);
        } catch (PDOException $e_log) {
            error_log("Erro ao registrar histórico de logout: " . $e_log->getMessage());
        }
    }
}

// Destruir todas as variáveis de sessão
$_SESSION = [];

// Destruir a sessão.
session_destroy();

// Limpar o cookie de sessão, se existir.
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Redirecionar para a página de login
header("Location: login.php");
exit; // Certifique-se de que nenhum código adicional seja executado após o redirecionamento
?>