<?php
require '../../conexao/conexao.php';
//require '../sessao.php';
require '../../configuacoes.php';

$id = $_GET['id'] ?? 0;
if (empty($id) || !is_numeric($id)) {
    $_SESSION['erro'] = 'ID do módulo inválido!';
    header('Location: index.php');
    exit;
}
$id = (int) $id;

// Verificar se o módulo existe
$sql_check = "SELECT modulo AS nome_modulo FROM modulo WHERE id_modulo = ?";
$stmt_check = mysqli_prepare($connectionmysql, $sql_check);
mysqli_stmt_bind_param($stmt_check, "i", $id);
mysqli_stmt_execute($stmt_check);
$result_check = mysqli_stmt_get_result($stmt_check);

if (!$result_check || mysqli_num_rows($result_check) === 0) {
    $_SESSION['erro'] = 'Módulo não encontrado!';
    header('Location: index.php');
    exit;
}

$modulo = mysqli_fetch_assoc($result_check);
$nome_modulo = $modulo['nome_modulo'];
mysqli_stmt_close($stmt_check);

// Verificar se o módulo está sendo usado por perfis
$sql_check_perfis = "SELECT COUNT(*) AS total FROM perfil_modulo WHERE id_modulo = ?";
$stmt_perfis = mysqli_prepare($connectionmysql, $sql_check_perfis);
mysqli_stmt_bind_param($stmt_perfis, "i", $id);
mysqli_stmt_execute($stmt_perfis);
$result_check_perfis = mysqli_stmt_get_result($stmt_perfis);

if ($result_check_perfis) {
    $row = mysqli_fetch_assoc($result_check_perfis);
    if ($row['total'] > 0) {
        $_SESSION['erro'] = 'Não é possível excluir o módulo "' . $nome_modulo . '" pois está sendo usado por ' . $row['total'] . ' perfil(s)!';
        header('Location: remover_de_perfis.php?id=' . $id);
        exit;
    }
}
mysqli_stmt_close($stmt_perfis);

// Iniciar transação
mysqli_begin_transaction($connectionmysql);

try {
    // Excluir o módulo
    $sql_delete = "DELETE FROM modulo WHERE id_modulo = ?";
    $stmt_delete = mysqli_prepare($connectionmysql, $sql_delete);
    mysqli_stmt_bind_param($stmt_delete, "i", $id);
    $ok = mysqli_stmt_execute($stmt_delete);

    if (!$ok) {
        throw new Exception('Erro ao excluir módulo: ' . mysqli_stmt_error($stmt_delete));
    }

    mysqli_commit($connectionmysql);
    $_SESSION['sucesso'] = 'Módulo "' . $nome_modulo . '" excluído com sucesso!';
    mysqli_stmt_close($stmt_delete);

} catch (Exception $e) {
    mysqli_rollback($connectionmysql);
    $_SESSION['erro'] = 'Erro ao excluir módulo: ' . $e->getMessage();
}

// Redirecionar de volta
$location = 'index.php?status=sucesso';
if (isset($_SESSION['filtros'])) {
    $filtros = http_build_query($_SESSION['filtros']);
    $location .= '?' . $filtros;
}
header("Location: $location");
exit;
?>
