import { NextRequest, NextResponse } from 'next/server'; import { executeOracleQuery } from '@/db/oracle'; export async function GET(request: NextRequest) { try { console.log('🔄 Buscando dados analíticos do Oracle...'); // Query para buscar dados da tabela DRE_RESULTADO_ANALITICO const sql = `SELECT * FROM DRE_RESULTADO_ANALITICO ORDER BY DTVENC, CODFORNEC, CODCONTA`; const data = await executeOracleQuery(sql); console.log('✅ Query executada com sucesso:', data.length, 'registros encontrados'); // Transformar os dados do Oracle para o formato esperado pelo componente const transformedData = data.map((item: any) => ({ codigo_grupo: item.CODGRUPO || "", codigo_subgrupo: "", // Não existe na tabela Oracle codigo_fornecedor: item.CODFORNEC || "", nome_fornecedor: item.FORNECEDOR || "", id: item.NUMLANC || 0, codfilial: "001", // Valor padrão recnum: item.NUMLANC || 0, data_competencia: item.ANOMESCOMP || "", data_vencimento: item.DTVENC ? new Date(item.DTVENC).toISOString().split('T')[0] : "", data_pagamento: "", // Não existe na tabela Oracle data_caixa: item.DTCAIXA ? new Date(item.DTCAIXA).toISOString().split('T')[0] : "", codigo_conta: item.CODCONTA || "", conta: item.CONTA || "", codigo_centrocusto: item.CODIGOCENTROCUSTO || "", valor: item.VLREALIZADO || 0, historico: item.HISTORICO || "", historico2: item.HISTORICO2 || "", created_at: new Date().toISOString(), updated_at: new Date().toISOString(), // Campos adicionais do Oracle entidade: item.ENTIDADE || "", tipo_parceiro: item.TIPOPARCEIRO || "", valor_previsto: item.VLPREVISTO || 0, valor_confirmado: item.VLCONFIRMADO || 0, valor_pago: item.VLPAGO || 0, numero_lancamento: item.NUMLANC || 0, ano_mes_comp: item.ANOMESCOMP || "", codgrupo: item.CODGRUPO || "" })); return NextResponse.json(transformedData); } catch (error) { console.error('❌ Erro ao buscar dados analíticos do Oracle:', error); return NextResponse.json( { success: false, error: error instanceof Error ? error.message : 'Erro desconhecido', details: error instanceof Error ? error.stack : undefined }, { status: 500 } ); } }