Delete user with soft delete (Admin only)
DELETE/company/users/:id
Elimina un usuario de forma permanente usando soft delete (mongoose-delete). El usuario ya no aparecerá en consultas normales pero puede ser recuperado.
Objective
Permitir a administradores eliminar usuarios de forma segura con posibilidad de recuperación mediante soft delete.
Use Cases
- Eliminar un usuario que ya no trabaja en la empresa
- Eliminar cuentas duplicadas
- Eliminar usuarios de prueba
Authentication & Authorization
- Requiere JWT válido (middleware m.isLoged)
- Requiere rol admin o dev (middleware m.isAdmin)
Behavior
- Usa user.delete() de mongoose-delete (soft delete)
- Establece deleted: true y deletedAt con la fecha actual
- Usuario ya no aparece en queries normales
- Recuperable vía endpoint POST /disabled/reactivate/:id
Notes
- Diferente de DELETE /delete/:id que solo deshabilita (status=false)
- Este endpoint elimina completamente el registro (aunque recuperable)
Validation Flow
flowchart TD
A[Recibir DELETE /:id] --> B{Usuario Admin?}
B -->|No| C[403 Forbidden]
B -->|Sí| D{Usuario Existe?}
D -->|No| E[404 Not Found]
D -->|Sí| F[Ejecutar soft delete]
F --> G[Establecer deleted: true]
G --> H[Establecer deletedAt]
H --> I[Retornar 200 OK]
Request
Responses
- 200
- 401
- 403
- 404
Usuario eliminado exitosamente (soft delete)
No autorizado (se requiere rol admin o dev)
Prohibido (usuario no es administrador)
Usuario no encontrado