<?php
session_start();

require_once 'conexao.php';

// Verifica se o usuário está logado e é admin
if (!isset($_SESSION['logado']) || $_SESSION['logado'] !== true || $_SESSION['permissao'] !== 'admin') {
    header('Location: login.php');
    exit;
}

// Verifica tenant_id da sessão
if (!isset($_SESSION['tenant_id'])) {
    header('Location: login.php');
    exit;
}
$tenantId = (int) $_SESSION['tenant_id'];

// Verifica se os parâmetros foram passados
if (!isset($_GET['id']) || !isset($_GET['acao'])) {
    header('Location: gerenciar_usuarios.php');
    exit;
}

$id = intval($_GET['id']); // Garante que seja número
$acao = $_GET['acao'];

// Valida a ação
if ($acao !== 'ativar' && $acao !== 'inativar') {
    header('Location: gerenciar_usuarios.php');
    exit;
}

// Define novo status
$novoStatus = $acao === 'ativar' ? 'sim' : 'nao';

// Atualiza somente se o usuário pertence ao mesmo tenant do admin
$sql = "UPDATE usuarios SET ativo = ? WHERE id = ? AND tenant_id = ?";
$stmt = $conn->prepare($sql);

if (!$stmt) {
    $_SESSION['mensagem'] = "Erro na preparação da query: " . $conn->error;
    header('Location: gerenciar_usuarios.php?refresh=' . time());
    exit;
}

$stmt->bind_param("sii", $novoStatus, $id, $tenantId);

if ($stmt->execute()) {
    if ($stmt->affected_rows > 0) {
        $_SESSION['mensagem'] = $acao === 'ativar' ? "Usuário ativado com sucesso!" : "Usuário inativado com sucesso!";
    } else {
        $_SESSION['mensagem'] = "Usuário não encontrado ou sem permissão para alteração.";
    }
} else {
    $_SESSION['mensagem'] = "Erro ao atualizar status do usuário: " . $stmt->error;
}

$stmt->close();
$conn->close();

// Redireciona com query string para evitar cache
header('Location: gerenciar_usuarios.php?refresh=' . time());
exit;
?>
