<?php
session_start();
require_once 'conexao.php';

// Verificar se usuário está logado
if (!isset($_SESSION['logado']) || $_SESSION['logado'] !== true) {
    header("Location: login.php");
    exit;
}

// Se for super_admin, permitir acesso mesmo se tenant estiver inativo
// (super_admin não está vinculado a um tenant específico)
if (isset($_SESSION['permissao']) && $_SESSION['permissao'] === 'super_admin') {
    // Super admin pode acessar mesmo sem tenant_id
    return;
}

// Verificar se tem tenant_id na sessão
if (!isset($_SESSION['usuario']['tenant_id']) || empty($_SESSION['usuario']['tenant_id'])) {
    session_destroy();
    header("Location: login.php?msg=sem_tenant");
    exit;
}

$tenant_id = $_SESSION['usuario']['tenant_id'];

// Verificar se o tenant ainda está ativo (verificação em tempo real)
$sql = "SELECT ativo, nome FROM tenants WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $tenant_id);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows > 0) {
    $tenant = $result->fetch_assoc();
    
    // Se tenant inativo, destruir sessão e redirecionar
    if ($tenant['ativo'] != 1) {
        // Registrar logout forçado
        error_log("Usuário deslogado automaticamente - Tenant inativo: " . 
                  $_SESSION['usuario']['email'] . 
                  " - Tenant: " . $tenant['nome']);
        
        session_destroy();
        header("Location: login.php?msg=tenant_inativo");
        exit;
    }
    
    // Atualizar status do tenant na sessão
    $_SESSION['usuario']['tenant_ativo'] = $tenant['ativo'];
    $_SESSION['usuario']['tenant_nome'] = $tenant['nome'];
} else {
    // Tenant não existe mais
    error_log("Tenant não encontrado no banco: ID " . $tenant_id);
    session_destroy();
    header("Location: login.php?msg=tenant_inexistente");
    exit;
}

$stmt->close();
?>