Módulo User
src/app/modules/user/
Gestión de usuarios internos del CRM (agentes, administradores).
Modelo — User
| Campo | Tipo | Descripción |
|---|---|---|
_id | ObjectId | ID de MongoDB |
identifier | string (UUID) | ID externo único |
tenantId | ObjectId → Tenant | Tenant al que pertenece |
username | string | Nombre de usuario único |
email | string | Email único |
password | string | Hash bcrypt |
roleId | ObjectId → Role | Rol asignado |
isActive | boolean | Si puede iniciar sesión |
firstname | string | Primer nombre |
secondFirstname | string | Segundo nombre |
lastName | string | Apellido paterno |
secondLastName | string | Apellido materno |
userType | string | Tipo de usuario |
createdAt | Date | — |
updatedAt | Date | — |
Endpoints
| Método | Ruta | Auth | Descripción |
|---|---|---|---|
GET | /api/v1/users | @Auth() | Lista usuarios paginada |
GET | /api/v1/users/:id | @Auth() | Obtiene un usuario |
POST | /api/v1/users | @Auth() | Crea usuario |
PATCH | /api/v1/users/:id | @Auth() | Actualiza usuario |
DELETE | /api/v1/users/:id | @Auth() | Elimina usuario |
DTOs
CreateUserDto
{
tenantId: string // UUID del tenant
username: string
email: string
password: string
roleId: string // UUID del rol
firstname: string
secondFirstname?: string
lastName: string
secondLastName?: string
userType?: string
}
UpdateUserDto
Todos los campos de CreateUserDto son opcionales.
Exports
UserService y UserRepository son exportados para su uso en AuthGuard y ChatGateway.