Delete user with soft delete (Admin only)
DELETE/company/users/:id
Remove um usuário permanentemente usando soft delete (mongoose-delete). O usuário não aparecerá mais em consultas normais, mas pode ser recuperado.
Objetivo
Permitir que administradores removam usuários de forma segura com possibilidade de recuperação via soft delete.
Casos de Uso
- Remover um usuário que não trabalha mais na empresa
- Remover contas duplicadas
- Remover usuários de teste
Autenticação & Autorização
- Requer JWT válido (middleware m.isLoged)
- Requer função admin ou dev (middleware m.isAdmin)
Comportamento
- Usa user.delete() do mongoose-delete (soft delete)
- Define deleted: true e deletedAt com a data atual
- Usuário não aparece mais em consultas normais
- Recuperável via endpoint POST /disabled/reactivate/:id
Observações
- Diferente de DELETE /delete/:id que apenas desabilita (status=false)
- Este endpoint remove o registro completamente (embora recuperável)
Fluxo de Validação
flowchart TD
A[Receber DELETE /:id] --> B{Usuário Admin?}
B -->|Não| C[403 Forbidden]
B -->|Sim| D{Usuário Existe?}
D -->|Não| E[404 Not Found]
D -->|Sim| F[Executar soft delete]
F --> G[Definir deleted: true]
G --> H[Definir deletedAt]
H --> I[Retornar 200 OK]
Request
Responses
- 200
- 401
- 403
- 404
Usuário excluído com sucesso (soft delete)
Não autorizado (é necessário o papel de admin ou dev)
Proibido (usuário não é administrador)
Usuário não encontrado