admin/companies: evitar 500 ao excluir — pré-checar vínculos (users/tickets) e retornar 409 com detalhes

This commit is contained in:
Esdras Renan 2025-10-16 17:40:39 -03:00
parent f60a48e7b3
commit a9caf36b01

View file

@ -77,6 +77,21 @@ export async function DELETE(_: Request, { params }: { params: Promise<{ id: str
} }
try { try {
// Préchecagem para evitar 500 por FK: conta vínculos antes
const [usersCount, ticketsCount] = await Promise.all([
prisma.user.count({ where: { companyId: company.id } }),
prisma.ticket.count({ where: { companyId: company.id } }),
])
if (usersCount > 0 || ticketsCount > 0) {
return NextResponse.json(
{
error: "Não é possível remover esta empresa pois existem registros vinculados.",
details: { users: usersCount, tickets: ticketsCount },
},
{ status: 409 }
)
}
await prisma.company.delete({ where: { id: company.id } }) await prisma.company.delete({ where: { id: company.id } })
return NextResponse.json({ ok: true }) return NextResponse.json({ ok: true })
} catch (error) { } catch (error) {