<?php
// Configurações do banco de TESTES
$host_teste     = "localhost";
$port_teste     = 3306;
$user_teste     = "tvitec62_adm";
$password_teste = "Gabrielito@1";
$database_teste = "tvitec62_son_teste";

// Criar conexão com o banco de TESTES
$conn_teste = new mysqli($host_teste, $user_teste, $password_teste, $database_teste);

// Definir charset correto
$conn_teste->set_charset("utf8mb4");

// Verificar conexão
if ($conn_teste->connect_error) {
    error_log("❌ Falha na conexão com banco de TESTES: " . $conn_teste->connect_error);
    // Não morre aqui para não quebrar a aplicação se o banco de teste não existir
}

/**
 * Função para criar conexão específica com banco de testes
 * @return mysqli|false Retorna a conexão ou false em caso de erro
 */
function criarConexaoBancoTeste() {
    global $host_teste, $user_teste, $password_teste, $database_teste;
    
    $conn = new mysqli($host_teste, $user_teste, $password_teste, $database_teste);
    
    if ($conn->connect_error) {
        error_log("❌ Erro ao conectar ao banco de testes: " . $conn->connect_error);
        return false;
    }
    
    $conn->set_charset("utf8mb4");
    return $conn;
}

/**
 * Verifica se um usuário específico é do banco de testes
 * @param string $email Email do usuário
 * @return bool True se existir no banco de testes
 */
function usuarioExisteNoBancoTeste($email) {
    $conn = criarConexaoBancoTeste();
    if (!$conn) return false;
    
    $stmt = $conn->prepare("SELECT id FROM usuarios WHERE email = ?");
    $stmt->bind_param("s", $email);
    $stmt->execute();
    $result = $stmt->get_result();
    
    $existe = $result->num_rows > 0;
    
    $stmt->close();
    $conn->close();
    
    return $existe;
}

/**
 * Busca usuário no banco de testes
 * @param string $email Email do usuário
 * @return array|false Retorna dados do usuário ou false se não encontrado
 */
/**
 * Busca usuário no banco de testes - VERSÃO CORRIGIDA
 * @param string $email Email do usuário
 * @return array|false Retorna dados do usuário ou false se não encontrado
 */
function buscarUsuarioBancoTeste($email) {
    $conn = criarConexaoBancoTeste();
    if (!$conn) {
        error_log("❌ buscarUsuarioBancoTeste: Falha ao conectar ao banco de testes");
        return false;
    }
    
    error_log("🔍 buscarUsuarioBancoTeste: Buscando email: " . $email);
    
    // Query corrigida - garantir que os campos existem
    $sql = "
        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 = ?
    ";
    
    $stmt = $conn->prepare($sql);
    
    if (!$stmt) {
        error_log("❌ buscarUsuarioBancoTeste: Erro no prepare: " . $conn->error);
        $conn->close();
        return false;
    }
    
    $stmt->bind_param("s", $email);
    $stmt->execute();
    $result = $stmt->get_result();
    
    if ($result->num_rows === 1) {
        $usuario = $result->fetch_assoc();
        error_log("✅ buscarUsuarioBancoTeste: Usuário encontrado - ID: " . $usuario['id'] . ", Nome: " . $usuario['nome']);
        $stmt->close();
        $conn->close();
        return $usuario;
    } else {
        error_log("❌ buscarUsuarioBancoTeste: Usuário não encontrado com email: " . $email . " (Total encontrados: " . $result->num_rows . ")");
    }
    
    $stmt->close();
    $conn->close();
    return false;
}

/**
 * Busca usuário completo no banco de testes (com todos os dados)
 * @param string $email Email do usuário
 * @return array|false Retorna dados do usuário ou false se não encontrado
 */
function buscarUsuarioCompletoBancoTeste($email) {
    $conn = criarConexaoBancoTeste();
    if (!$conn) return false;
    
    $stmt = $conn->prepare("
        SELECT 
            u.id, 
            u.nome, 
            u.email,
            u.senha, 
            u.permissao, 
            u.ativo, 
            u.tenant_id,
            u.foto_perfil,
            u.telefone,
            t.ativo as tenant_ativo,
            t.nome as tenant_nome,
            t.cnpj as tenant_cnpj,
            t.data_inicio as tenant_data_inicio,
            t.data_fim as tenant_data_fim,
            t.quota_total_mb,
            t.espaco_utilizado_total_mb,
            p.codigo as plano_codigo,
            p.nome as plano_nome
        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 = ?
    ");
    
    $stmt->bind_param("s", $email);
    $stmt->execute();
    $result = $stmt->get_result();
    
    if ($result->num_rows === 1) {
        $usuario = $result->fetch_assoc();
        $stmt->close();
        $conn->close();
        return $usuario;
    }
    
    $stmt->close();
    $conn->close();
    return false;
}
?>