import { Router } from 'express'; import { PrismaClient } from '@prisma/client'; import { extractUser } from '../authMiddleware'; // Importar a função correta const router = Router(); const prisma = new PrismaClient(); // Middleware de autenticação router.use(extractUser); // Criar novo cálculo de pensão alimentícia router.post('/', async (req, res) => { try { const { titulo, descricao, dataInicial, dataFinal, percentualSalarioMinimo, multaPactuada, tipoAtualizacao, processoId, clienteId, observacoes } = req.body; const calculo = await prisma.calculoPensaoAlimenticia.create({ data: { titulo, descricao, status: 'ATIVO', dataInicial: new Date(dataInicial), dataFinal: dataFinal ? new Date(dataFinal) : null, percentualSalarioMinimo, multaPactuada, tipoAtualizacao, valorCalculado: 0, valorMulta: 0, valorTotal: 0, processoId, clienteId, observacoes, usuarioId: req.user.id } }); res.json(calculo); } catch (error) { console.error('Erro ao criar cálculo de pensão:', error); res.status(500).json({ error: 'Falha ao criar cálculo' }); } }); // Buscar cálculo por ID router.get('/:id', async (req, res) => { try { const { id } = req.params; const calculo = await prisma.calculoPensaoAlimenticia.findUnique({ where: { id }, include: { processo: true, cliente: true, usuario: { select: { id: true, nome: true, email: true } } } }); if (!calculo) { return res.status(404).json({ error: 'Cálculo não encontrado' }); } res.json(calculo); } catch (error) { console.error('Erro ao buscar cálculo:', error); res.status(500).json({ error: 'Falha ao buscar cálculo' }); } }); // Listar cálculos router.get('/', async (req, res) => { try { const calculos = await prisma.calculoPensaoAlimenticia.findMany({ include: { processo: true, cliente: true, usuario: { select: { id: true, nome: true } } }, orderBy: { criadoEm: 'desc' } }); res.json(calculos); } catch (error) { console.error('Erro ao listar cálculos:', error); res.status(500).json({ error: 'Falha ao listar cálculos' }); } }); export default router;