<?php 
session_start();

// DEBUG VISUAL NA TELA
$debug = [];
function add_debug($msg) {
    global $debug;
    $debug[] = date('H:i:s') . " - " . $msg;
}

add_debug("Iniciando login.php com debug");

// Se já estiver logado, redireciona
if (isset($_SESSION['logado']) && $_SESSION['logado'] === true) {
    add_debug("Usuário já logado - redirecionando");
    header('Location: index.php');
    exit;
}

// Carrega conexões
require_once 'conexao.php';
require_once 'conexao_teste.php';

add_debug("Conexões carregadas");

$erro = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    add_debug("POST recebido");
    
    $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
    $senha = $_POST['senha'] ?? '';
    
    add_debug("Email: $email");
    
    if (empty($email) || empty($senha)) {
        $erro = 'Preencha todos os campos.';
        add_debug("ERRO: campos vazios");
    } else {
        // Buscar no banco PRINCIPAL
        add_debug("Buscando no banco PRINCIPAL...");
        $usuario = null;
        $banco = null;
        $conn_ativa = null;
        
        $stmt = $conn->prepare("
            SELECT 
                u.id, u.nome, u.email, u.senha, u.permissao, u.ativo, u.tenant_id, u.foto_perfil,
                t.ativo as tenant_ativo, t.nome as tenant_nome, t.data_fim as tenant_data_fim,
                p.codigo as plano_codigo
            FROM usuarios u 
            LEFT JOIN tenants t ON u.tenant_id = t.id 
            LEFT JOIN planos p ON t.plano_id = p.id
            WHERE u.email = ?
        ");
        
        if ($stmt) {
            $stmt->bind_param("s", $email);
            $stmt->execute();
            $result = $stmt->get_result();
            
            add_debug("Principal - registros encontrados: " . $result->num_rows);
            
            if ($result->num_rows === 1) {
                $usuario = $result->fetch_assoc();
                $banco = 'principal';
                $conn_ativa = $conn;
                add_debug("✅ Usuário encontrado no PRINCIPAL: " . $usuario['nome']);
            }
            $stmt->close();
        }
        
        // Se não achou, tentar testes
        if (!$usuario && isset($conn_teste)) {
            add_debug("Buscando no banco de TESTES...");
            
            $stmt_teste = $conn_teste->prepare("
                SELECT 
                    u.id, u.nome, u.email, u.senha, u.permissao, u.ativo, u.tenant_id, u.foto_perfil,
                    t.ativo as tenant_ativo, t.nome as tenant_nome, t.data_fim as tenant_data_fim,
                    p.codigo as plano_codigo
                FROM usuarios u 
                LEFT JOIN tenants t ON u.tenant_id = t.id 
                LEFT JOIN planos p ON t.plano_id = p.id
                WHERE u.email = ?
            ");
            
            if ($stmt_teste) {
                $stmt_teste->bind_param("s", $email);
                $stmt_teste->execute();
                $result_teste = $stmt_teste->get_result();
                
                add_debug("Testes - registros encontrados: " . $result_teste->num_rows);
                
                if ($result_teste->num_rows === 1) {
                    $usuario = $result_teste->fetch_assoc();
                    $banco = 'teste';
                    $conn_ativa = $conn_teste;
                    add_debug("✅ Usuário encontrado no TESTES: " . $usuario['nome']);
                    add_debug("Dados do usuário: " . print_r($usuario, true));
                }
                $stmt_teste->close();
            }
        }
        
        if ($usuario) {
            add_debug("Verificando senha...");
            
            if (password_verify($senha, $usuario['senha'])) {
                add_debug("✅ Senha CORRETA!");
                
                add_debug("Status - Ativo: " . $usuario['ativo'] . ", Tenant Ativo: " . $usuario['tenant_ativo']);
                
                if ($usuario['ativo'] === 'sim' && $usuario['tenant_ativo'] == 1) {
                    
                    // Verificar teste expirado
                    if ($usuario['plano_codigo'] === 'teste' && !empty($usuario['tenant_data_fim'])) {
                        $expirado = strtotime($usuario['tenant_data_fim']) < time();
                        add_debug("Teste - Data fim: " . $usuario['tenant_data_fim'] . ", Expirado: " . ($expirado ? 'SIM' : 'NÃO'));
                        
                        if ($expirado) {
                            add_debug("Teste expirado - redirecionando");
                            header('Location: teste_expirado.php?tenant=' . $usuario['tenant_id']);
                            exit;
                        }
                    }
                    
                    // CRIAR SESSÃO
                    add_debug("Criando sessão...");
                    
                    $_SESSION['logado'] = true;
                    
                    // Array usuario
                    $_SESSION['usuario'] = [
                        'id' => $usuario['id'],
                        'nome' => $usuario['nome'],
                        'email' => $usuario['email'],
                        'permissao' => strtolower($usuario['permissao']),
                        'tenant_id' => $usuario['tenant_id'],
                        'tenant_nome' => $usuario['tenant_nome'],
                        'tenant_ativo' => $usuario['tenant_ativo'],
                        'foto_perfil' => $usuario['foto_perfil'] ?? '',
                        'plano_codigo' => $usuario['plano_codigo']
                    ];
                    
                    // Campos avulsos
                    $_SESSION['usuario_id'] = $usuario['id'];
                    $_SESSION['nome_usuario'] = $usuario['nome'];
                    $_SESSION['email_usuario'] = $usuario['email'];
                    $_SESSION['permissao'] = strtolower($usuario['permissao']);
                    $_SESSION['tenant_id'] = $usuario['tenant_id'];
                    $_SESSION['tenant_nome'] = $usuario['tenant_nome'];
                    $_SESSION['tenant_ativo'] = $usuario['tenant_ativo'];
                    $_SESSION['plano_codigo'] = $usuario['plano_codigo'];
                    $_SESSION['banco_usuario'] = $banco;
                    
                    add_debug("✅ SESSÃO CRIADA");
                    add_debug("tenant_id (array): " . $_SESSION['usuario']['tenant_id']);
                    add_debug("tenant_id (avulso): " . $_SESSION['tenant_id']);
                    
                    // Fechar conexões
                    if (isset($conn)) $conn->close();
                    if (isset($conn_teste)) $conn_teste->close();
                    
                    // Forçar escrita
                    session_write_close();
                    
                    add_debug("Session escrita no disco");
                    
                    // REDIRECIONAR
                    $destino = ($usuario['plano_codigo'] === 'teste') ? 'index.php?teste=ativo' : 'index.php';
                    add_debug("Redirecionando para: $destino");
                    
                    // VÁRIOS MÉTODOS DE REDIRECIONAMENTO
                    header("Location: $destino");
                    echo "<script>window.location.href='$destino';</script>";
                    echo "<meta http-equiv='refresh' content='0;url=$destino'>";
                    
                    // MOSTRAR BOTÃO DE CONTINUAR (FALLBACK)
                    echo "<div style='position:fixed; top:0; left:0; right:0; background:yellow; padding:20px; text-align:center; z-index:9999;'>";
                    echo "<h3>Se você não for redirecionado em 5 segundos, <a href='$destino'>clique aqui</a></h3>";
                    echo "</div>";
                    
                    exit;
                    
                } else {
                    $erro = 'Usuário ou tenant inativo.';
                    add_debug("ERRO: usuário ou tenant inativo");
                }
            } else {
                $erro = 'Credenciais inválidas.';
                add_debug("ERRO: senha incorreta");
            }
        } else {
            $erro = 'Credenciais inválidas.';
            add_debug("ERRO: usuário não encontrado");
        }
    }
}

// Fechar conexões
if (isset($conn)) $conn->close();
if (isset($conn_teste)) $conn_teste->close();
?>
<!DOCTYPE html>
<html>
<head>
    <title>Login com Debug</title>
    <style>
        body { font-family: Arial; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; padding: 20px; }
        .container { max-width: 800px; width: 100%; }
        .login-box { background: white; padding: 30px; border-radius: 10px; margin-bottom: 20px; }
        .debug-box { background: #1e1e2f; color: #00ff00; padding: 20px; border-radius: 10px; font-family: monospace; font-size: 12px; max-height: 400px; overflow-y: auto; }
        .debug-line { margin: 2px 0; border-bottom: 1px solid #333; padding: 2px; }
        h2 { text-align: center; color: #333; margin-top: 0; }
        .form-group { margin-bottom: 15px; }
        .form-group input { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 5px; box-sizing: border-box; }
        button { width: 100%; padding: 10px; background: #667eea; color: white; border: none; border-radius: 5px; cursor: pointer; }
        .error { background: #ffebee; color: #c62828; padding: 10px; border-radius: 5px; margin-bottom: 15px; text-align: center; }
    </style>
</head>
<body>
    <div class="container">
        <div class="login-box">
            <h2>🔐 Login com Debug</h2>
            
            <?php if ($erro): ?>
                <div class="error"><?php echo $erro; ?></div>
            <?php endif; ?>
            
            <form method="POST">
                <div class="form-group">
                    <input type="email" name="email" placeholder="E-mail" required value="<?php echo $_POST['email'] ?? ''; ?>">
                </div>
                <div class="form-group">
                    <input type="password" name="senha" placeholder="Senha" required>
                </div>
                <button type="submit">Entrar</button>
            </form>
        </div>
        
        <div class="debug-box">
            <h3 style="color:white; margin-top:0;">📋 Debug Log</h3>
            <?php foreach ($debug as $line): ?>
                <div class="debug-line"><?php echo htmlspecialchars($line); ?></div>
            <?php endforeach; ?>
            <?php if (empty($debug)): ?>
                <div class="debug-line">Aguardando ação...</div>
            <?php endif; ?>
        </div>
    </div>
</body>
</html>