Files
advx/src/server/routes/pensaoAlimenticia.ts
T
2025-04-10 23:07:21 -03:00

112 lines
2.5 KiB
TypeScript

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;