Fix: Debug info not showing correct data

The AI will investigate why the debug information is not reflecting the expected data from the database, potentially due to incorrect database connection or data retrieval issues.
This commit is contained in:
gpt-engineer-app[bot] 2025-05-24 14:44:09 +00:00
parent ea7398237e
commit e7b414724b
2 changed files with 109 additions and 69 deletions

View File

@ -39,20 +39,31 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
setCheckingInstance(true);
try {
console.log('🔍 === VERIFICAÇÃO DE INSTÂNCIA ===');
console.log('🔍 Verificando instância para o usuário:', userEmail);
console.log('🔍 === VERIFICAÇÃO DE INSTÂNCIA INICIADA ===');
console.log('🔍 Email fornecido:', userEmail);
console.log('🔍 Tipo do email:', typeof userEmail);
console.log('🔍 Email length:', userEmail.length);
// TESTE: Verificar se o email está sendo usado corretamente
const emailTrimmed = userEmail.trim().toLowerCase();
console.log('📧 Email após trim/lower:', emailTrimmed);
const instanceData = await getUserWhatsAppInstance(userEmail);
console.log('📊 === DADOS DA INSTÂNCIA RETORNADOS ===');
console.log('📊 Dados completos:', JSON.stringify(instanceData, null, 2));
console.log('📊 === DADOS RETORNADOS DA FUNÇÃO ===');
console.log('📊 instanceData completo:', JSON.stringify(instanceData, null, 2));
if (instanceData) {
console.log('🔍 === VERIFICAÇÃO DETALHADA ===');
console.log('✅ instancia_zap existe?', !!instanceData.instancia_zap);
console.log('🔍 === ANÁLISE DETALHADA DOS DADOS ===');
console.log('✅ instanceData existe:', !!instanceData);
console.log('📝 instancia_zap valor:', instanceData.instancia_zap);
console.log('✅ instancia_zap não é vazio?', instanceData.instancia_zap?.trim() !== '');
console.log('📝 instancia_zap tipo:', typeof instanceData.instancia_zap);
console.log('✅ instancia_zap não é null:', instanceData.instancia_zap !== null);
console.log('✅ instancia_zap não é vazio após trim:', instanceData.instancia_zap?.trim() !== '');
console.log('📝 status_instancia valor:', instanceData.status_instancia);
console.log('✅ status_instancia é "conectado"?', instanceData.status_instancia === 'conectado');
console.log('📝 status_instancia tipo:', typeof instanceData.status_instancia);
console.log('✅ status_instancia é "conectado":', instanceData.status_instancia === 'conectado');
} else {
console.log('❌ instanceData é null ou undefined');
}
// LÓGICA CORRETA: Verificar se tem instância E se está conectada
@ -60,26 +71,27 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
instanceData &&
instanceData.instancia_zap &&
instanceData.instancia_zap.trim() !== '' &&
instanceData.status_instancia === 'conectado' // DEVE ESTAR CONECTADO
instanceData.status_instancia === 'conectado'
);
console.log('🎯 === RESULTADO DA VALIDAÇÃO ===');
console.log('🎯 === RESULTADO FINAL DA VALIDAÇÃO ===');
console.log('🎯 hasValidInstance:', hasValidInstance);
if (hasValidInstance) {
setHasWhatsAppInstance(true);
setUserInstance(instanceData);
console.log('✅ Usuário tem instância WhatsApp conectada - liberando cadastro de grupo');
console.log('✅ USUÁRIO TEM INSTÂNCIA VÁLIDA - Liberando cadastro de grupo');
} else {
setHasWhatsAppInstance(false);
setUserInstance(instanceData);
console.log('❌ Usuário não tem instância conectada:', {
instancia_zap: instanceData?.instancia_zap,
status_instancia: instanceData?.status_instancia
console.log('❌ USUÁRIO NÃO TEM INSTÂNCIA VÁLIDA:', {
temInstanceData: !!instanceData,
instancia_zap: instanceData?.instancia_zap || 'NULL',
status_instancia: instanceData?.status_instancia || 'NULL'
});
}
} catch (error) {
console.error('💥 Erro ao verificar instância do usuário:', error);
console.error('💥 ERRO CRÍTICO ao verificar instância do usuário:', error);
setHasWhatsAppInstance(false);
setUserInstance(null);
} finally {
@ -218,35 +230,50 @@ const CreateGroupForm = ({ userEmail, onSuccess }: CreateGroupFormProps) => {
</AlertDescription>
</Alert>
{/* Informações de debug DETALHADAS */}
{/* Informações de debug SUPER DETALHADAS */}
<div className="mt-4 p-4 bg-gray-100 rounded text-sm">
<p><strong>📊 STATUS DETALHADO DA INSTÂNCIA:</strong></p>
<p><strong>🔧 DEBUG COMPLETO - CONEXÃO COM BANCO:</strong></p>
<div className="mt-2 space-y-1">
<p><strong>Email consultado:</strong> {userEmail || 'Não definido'}</p>
<p><strong>instancia_zap:</strong>
<span className={userInstance?.instancia_zap ? 'text-green-600' : 'text-red-600'}>
{userInstance?.instancia_zap || 'NULL/Vazio'}
</span>
</p>
<p><strong>status_instancia:</strong>
<span className={userInstance?.status_instancia === 'conectado' ? 'text-green-600' : 'text-red-600'}>
{userInstance?.status_instancia || 'NULL/Vazio'}
</span>
</p>
<p><strong>whatsapp:</strong> {userInstance?.whatsapp || 'NULL/Vazio'}</p>
<p><strong>Email original:</strong> {userEmail || 'Não definido'}</p>
<p><strong>Email processado:</strong> {userEmail?.trim().toLowerCase() || 'Não processado'}</p>
<div className="mt-3 p-2 bg-yellow-100 rounded">
<p><strong>🔍 VALIDAÇÕES:</strong></p>
<p>✓ Instância existe? {userInstance ? '✅ SIM' : '❌ NÃO'}</p>
<p>✓ instancia_zap preenchida? {(userInstance?.instancia_zap && userInstance.instancia_zap.trim() !== '') ? '✅ SIM' : '❌ NÃO'}</p>
<p>✓ Status é "conectado"? {userInstance?.status_instancia === 'conectado' ? '✅ SIM' : '❌ NÃO'}</p>
<div className="mt-3 p-2 bg-blue-100 rounded">
<p><strong>📊 DADOS DO BANCO DE DADOS:</strong></p>
{userInstance ? (
<>
<p><strong>instancia_zap:</strong>
<span className={userInstance.instancia_zap ? 'text-green-600' : 'text-red-600'}>
"{userInstance.instancia_zap || 'NULL'}" (tipo: {typeof userInstance.instancia_zap})
</span>
</p>
<p><strong>status_instancia:</strong>
<span className={userInstance.status_instancia === 'conectado' ? 'text-green-600' : 'text-red-600'}>
"{userInstance.status_instancia || 'NULL'}" (tipo: {typeof userInstance.status_instancia})
</span>
</p>
<p><strong>whatsapp:</strong> "{userInstance.whatsapp || 'NULL'}"</p>
</>
) : (
<p className="text-red-600">❌ Nenhum dado retornado do banco de dados!</p>
)}
</div>
{userInstance?.instancia_zap && userInstance?.status_instancia !== 'conectado' && (
<p className="text-red-600 font-medium mt-2">
⚠️ Instância encontrada, mas não está conectada. Status atual: "{userInstance.status_instancia}"
</p>
)}
<div className="mt-3 p-2 bg-yellow-100 rounded">
<p><strong>🔍 VALIDAÇÕES STEP-BY-STEP:</strong></p>
<p>1. Dados existem? {userInstance ? '✅ SIM' : '❌ NÃO'}</p>
<p>2. instancia_zap preenchida? {(userInstance?.instancia_zap && userInstance.instancia_zap.trim() !== '') ? '✅ SIM' : '❌ NÃO'}</p>
<p>3. Status é "conectado"? {userInstance?.status_instancia === 'conectado' ? '✅ SIM' : '❌ NÃO'}</p>
{userInstance?.instancia_zap && userInstance?.status_instancia !== 'conectado' && (
<p className="text-red-600 font-medium mt-2">
⚠️ Instância encontrada mas status incorreto: "{userInstance.status_instancia}"
</p>
)}
</div>
</div>
<div className="mt-3 text-xs text-gray-600">
<p>💡 Abra o Console do navegador (F12) para ver logs detalhados da consulta ao banco de dados</p>
</div>
</div>
</CardContent>

View File

@ -1,3 +1,4 @@
import { supabase } from "@/integrations/supabase/client";
/**
@ -43,46 +44,56 @@ export async function getUserWhatsAppInstance(userEmail: string): Promise<{
console.log('🔍 getUserWhatsAppInstance - Email recebido:', userEmail);
const normalizedEmail = userEmail.trim().toLowerCase();
console.log('📧 Email normalizado:', normalizedEmail);
console.log('📧 Email normalizado para consulta:', normalizedEmail);
const { data, error } = await supabase
// TESTE DIRETO: Vamos fazer uma consulta mais específica
console.log('🔎 FAZENDO CONSULTA DIRETA NO BANCO...');
const { data, error, count } = await supabase
.from('usuarios')
.select('instancia_zap, status_instancia, whatsapp')
.eq('email', normalizedEmail)
.maybeSingle();
.select('email, instancia_zap, status_instancia, whatsapp', { count: 'exact' })
.eq('email', normalizedEmail);
console.log('📊 RESULTADO DA CONSULTA DIRETA:');
console.log('- Total de registros encontrados:', count);
console.log('- Dados retornados:', JSON.stringify(data, null, 2));
console.log('- Erro na consulta:', error);
if (error) {
console.error('❌ Erro ao buscar instância WhatsApp:', error);
console.error('❌ Erro na consulta Supabase:', error);
throw error;
}
console.log('📊 DADOS RETORNADOS DO BANCO:');
console.log('- Raw data:', JSON.stringify(data, null, 2));
if (!data) {
console.log('⚠️ Nenhum usuário encontrado com o email:', normalizedEmail);
if (!data || data.length === 0) {
console.log('⚠️ NENHUM REGISTRO ENCONTRADO para o email:', normalizedEmail);
// Vamos fazer uma busca alternativa para ver se o usuário existe com email diferente
const { data: allUsers, error: allError } = await supabase
// Fazer uma consulta geral para ver todos os emails no banco
console.log('🔍 CONSULTANDO TODOS OS EMAILS NO BANCO:');
const { data: allEmails, error: allError } = await supabase
.from('usuarios')
.select('email, instancia_zap, status_instancia, whatsapp');
.select('email, instancia_zap, status_instancia');
if (!allError && allUsers) {
console.log('📋 TODOS OS USUÁRIOS NO BANCO:');
allUsers.forEach((user, index) => {
console.log(`${index + 1}. Email: "${user.email}" | Instancia: "${user.instancia_zap}" | Status: "${user.status_instancia}"`);
if (!allError && allEmails) {
console.log('📋 TODOS OS EMAILS ENCONTRADOS NO BANCO:');
allEmails.forEach((user, index) => {
console.log(`${index + 1}. Email no banco: "${user.email}" | Instancia: "${user.instancia_zap}" | Status: "${user.status_instancia}"`);
});
}
return null;
}
console.log('✅ Usuário encontrado! Dados da instância:');
console.log(`- instancia_zap: "${data.instancia_zap}" (tipo: ${typeof data.instancia_zap})`);
console.log(`- status_instancia: "${data.status_instancia}" (tipo: ${typeof data.status_instancia})`);
console.log(`- whatsapp: "${data.whatsapp}" (tipo: ${typeof data.whatsapp})`);
const userData = data[0];
console.log('✅ USUÁRIO ENCONTRADO! Dados extraídos:');
console.log(`- Email do banco: "${userData.email}"`);
console.log(`- instancia_zap: "${userData.instancia_zap}" (tipo: ${typeof userData.instancia_zap})`);
console.log(`- status_instancia: "${userData.status_instancia}" (tipo: ${typeof userData.status_instancia})`);
console.log(`- whatsapp: "${userData.whatsapp}" (tipo: ${typeof userData.whatsapp})`);
return data;
return {
instancia_zap: userData.instancia_zap,
status_instancia: userData.status_instancia,
whatsapp: userData.whatsapp
};
} catch (error) {
console.error('💥 Erro crítico ao buscar instância WhatsApp:', error);
throw error;
@ -136,23 +147,25 @@ export async function removeUserWhatsAppInstance(userEmail: string): Promise<voi
*/
export async function getUserDebugInfo(userEmail: string): Promise<any> {
try {
console.log('Buscando informações completas do usuário para debug:', userEmail);
console.log('🔍 Buscando informações COMPLETAS do usuário para debug:', userEmail);
const normalizedEmail = userEmail.trim().toLowerCase();
console.log('📧 Email normalizado para debug:', normalizedEmail);
const { data, error } = await supabase
.from('usuarios')
.select('*')
.eq('email', userEmail.trim().toLowerCase())
.maybeSingle();
.eq('email', normalizedEmail);
if (error) {
console.error('Erro ao buscar informações completas do usuário:', error);
console.error('❌ Erro ao buscar informações completas do usuário:', error);
throw error;
}
console.log('Informações completas do usuário encontradas:', data);
return data;
console.log('📊 DADOS COMPLETOS DO USUÁRIO:', JSON.stringify(data, null, 2));
return data && data.length > 0 ? data[0] : null;
} catch (error) {
console.error('Erro ao buscar informações completas do usuário:', error);
console.error('💥 Erro ao buscar informações completas do usuário:', error);
throw error;
}
}