feat: allow company deletion by detaching dependents

This commit is contained in:
Esdras Renan 2025-10-16 22:28:12 -03:00
parent 2980885bf8
commit 7951bc25a3
3 changed files with 32 additions and 21 deletions

View file

@ -184,11 +184,25 @@ export function AdminCompaniesManager({ initialCompanies }: { initialCompanies:
method: "DELETE",
credentials: "include",
})
if (!response.ok) {
const data = await response.json().catch(() => ({}))
throw new Error(data.error ?? "Falha ao excluir empresa")
const data = (await response.json().catch(() => ({}))) as {
error?: string
detachedUsers?: number
detachedTickets?: number
}
toast.success("Empresa removida")
if (!response.ok) {
throw new Error(data?.error ?? "Falha ao excluir empresa")
}
const detachedUsers = data?.detachedUsers ?? 0
const detachedTickets = data?.detachedTickets ?? 0
const details: string[] = []
if (detachedUsers > 0) {
details.push(`${detachedUsers} usuário${detachedUsers > 1 ? "s" : ""} desvinculado${detachedUsers > 1 ? "s" : ""}`)
}
if (detachedTickets > 0) {
details.push(`${detachedTickets} ticket${detachedTickets > 1 ? "s" : ""} atualizado${detachedTickets > 1 ? "s" : ""}`)
}
const successMessage = details.length > 0 ? `Empresa removida (${details.join(", ")})` : "Empresa removida"
toast.success(successMessage)
if (editingId === deleteId) {
resetForm()
setEditingId(null)