import { NextRequest, NextResponse } from 'next/server'; import { Client, Databases, Query } from 'node-appwrite'; export const runtime = 'edge'; const createDatabasesClient = () => { const apiKey = process.env.APPWRITE_API_KEY; const endpoint = process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT; const projectId = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID; if (!apiKey || !endpoint || !projectId) { throw new Error('Configuração do Appwrite ausente'); } const client = new Client().setEndpoint(endpoint).setProject(projectId).setKey(apiKey); return new Databases(client); }; export async function GET(request: NextRequest) { console.log('[API] Debug registro usuario...'); try { const { searchParams } = new URL(request.url); const userId = searchParams.get('userId'); if (!userId) { return NextResponse.json( { success: false, error: 'userId é obrigatório' }, { status: 400 } ); } const databaseId = process.env.NEXT_PUBLIC_APPWRITE_DATABASE_ID!; const collectionId = process.env.NEXT_PUBLIC_APPWRITE_COLLECTION_USUARIOS_ID!; const databases = createDatabasesClient(); console.log('[API] Buscando usuário com auth-id-appwrite:', userId); const response = await databases.listDocuments(databaseId, collectionId, [ Query.equal('auth-id-appwrite', userId), Query.limit(1), ]); if (response.documents.length === 0) { console.log('[API] Usuário não encontrado'); return NextResponse.json({ success: true, found: false, message: 'Usuário não encontrado na base de dados', }); } const usuario = response.documents[0] as Record; const analise = { id: usuario.$id, 'auth-id-appwrite': usuario['auth-id-appwrite'], 'nome-civil': { valor: usuario['nome-civil'], preenchido: !!usuario['nome-civil'], }, cpf: { valor: usuario.cpf, preenchido: !!usuario.cpf, }, enderecos: { valor: usuario.enderecos, tipo: typeof usuario.enderecos, isArray: Array.isArray(usuario.enderecos), length: usuario.enderecos?.length || 0, valido: Array.isArray(usuario.enderecos) && usuario.enderecos.length > 0 && usuario.enderecos.some((endereco: string) => endereco && endereco.trim() !== ''), }, empresas_array: { valor: usuario.empresas_array, tipo: typeof usuario.empresas_array, isArray: Array.isArray(usuario.empresas_array), length: usuario.empresas_array?.length || 0, valido: usuario.empresas_array && Array.isArray(usuario.empresas_array) && usuario.empresas_array.length > 0, }, }; const dadosFaltantes: string[] = []; if (!analise['nome-civil'].preenchido || !analise.cpf.preenchido) { dadosFaltantes.push('Dados pessoais'); } if (!analise.enderecos.valido) { dadosFaltantes.push('Endereço'); } if (!analise.empresas_array.valido) { dadosFaltantes.push('Empresa'); } const isCompleto = dadosFaltantes.length === 0; return NextResponse.json({ success: true, found: true, isCompleto, dadosFaltantes, analise, dadosCompletos: usuario, }); } catch (error) { console.error('[API] Erro ao debugar registro:', error); return NextResponse.json( { success: false, error: 'Erro ao verificar registro' }, { status: 500 } ); } }