Pular para o conteúdo principal

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

Usuário excluído com sucesso (soft delete)