112 lines
2.5 KiB
TypeScript
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;
|