<?php
// auth_functions.php - Funções de autenticação SIMPLIFICADAS

require_once 'conexao.php';

/**
 * Verifica autenticação de forma segura (compatível com ambas estruturas)
 */
function verificarAutenticacao($redirect = true) {
    if (session_status() === PHP_SESSION_NONE) {
        session_start();
    }
    
    $usuario_id = 0;
    
    // Verifica estrutura antiga
    if (isset($_SESSION['logado']) && $_SESSION['logado'] === true) {
        $usuario_id = $_SESSION['id'] ?? 0;
    }
    // Verifica nova estrutura
    elseif (isset($_SESSION['usuario']) && isset($_SESSION['usuario']['id'])) {
        $usuario_id = $_SESSION['usuario']['id'];
    }
    
    // Se não está logado
    if (!$usuario_id) {
        if ($redirect) {
            header("Location: login.php");
            exit();
        }
        return false;
    }
    
    // Verifica acesso (sistema de teste)
    if (!verificarAcessoUsuario($usuario_id)) {
        // Obtém tenant_id para redirecionamento
        $tenant_id = obterTenantIdSessao();
        session_destroy();
        
        if ($redirect) {
            header("Location: teste_expirado.php?tenant=" . $tenant_id);
            exit();
        }
        return false;
    }
    
    return true;
}

/**
 * Obtém tenant_id da sessão
 */
function obterTenantIdSessao() {
    if (session_status() === PHP_SESSION_NONE) {
        session_start();
    }
    
    // Estrutura antiga
    if (isset($_SESSION['tenant_id'])) {
        return $_SESSION['tenant_id'];
    }
    
    // Nova estrutura
    if (isset($_SESSION['usuario']['tenant_id'])) {
        return $_SESSION['usuario']['tenant_id'];
    }
    
    return 0;
}

/**
 * Exibe alerta se teste está prestes a expirar
 */
function exibirAlertaTeste() {
    $tenant_id = obterTenantIdSessao();
    
    if (!$tenant_id) return;
    
    $dias_restantes = obterDiasRestantesTeste($tenant_id);
    
    if ($dias_restantes !== null && $dias_restantes <= 3 && $dias_restantes > 0) {
        echo '<div style="background: #f39c12; color: white; padding: 10px; text-align: center; border-radius: 5px; margin: 10px 0;">
                <i class="fas fa-exclamation-triangle"></i> 
                <strong>Atenção:</strong> Seu período de teste expira em ' . $dias_restantes . ' dias.
                <a href="planos.php" style="color: white; text-decoration: underline; margin-left: 10px;">
                    Adquirir plano completo
                </a>
              </div>';
    }
}

/**
 * Middleware simplificado para proteger páginas
 */
function protegerPagina() {
    // Verifica autenticação básica
    verificarAutenticacao();
    
    // Verifica se é super admin para páginas específicas
    $pagina_atual = basename($_SERVER['PHP_SELF']);
    $paginas_admin = ['cadastro_teste.php', 'tenant_manager.php'];
    
    if (in_array($pagina_atual, $paginas_admin) && !isSuperAdmin()) {
        header("Location: index.php");
        exit();
    }
    
    // Exibe alerta se necessário
    exibirAlertaTeste();
}
?>