Usuarios
📁 Estructura del Módulo
Controlador/Rutas
Controlador HTTP que maneja las rutas y endpoints para la gestión de usuarios.
Servicio/Lógica
Servicio que contiene la lógica de negocio para las operaciones de usuarios, incluyendo CRUD, autenticación y gestión de roles.
Entidades/Base de Datos
Entidad TypeORM que define la estructura de la tabla de usuarios en la base de datos.
DTO (Entradas/Salidas)
Objetos de transferencia de datos para validar y estructurar las entradas y salidas de las operaciones de usuarios.
Descripción General
El módulo de usuarios es responsable de gestionar toda la información y operaciones relacionadas con los usuarios del sistema OnSpot.
Funcionalidades Principales
Gestión de Usuarios
- Crear usuarios: Registro de nuevos usuarios en el sistema
- Consultar usuarios: Obtener información de usuarios individuales o listas
- Actualizar usuarios: Modificar información de usuarios existentes
- Eliminar usuarios: Desactivar o eliminar usuarios del sistema
Tipos de Usuario
- Backoffice: Administradores del sistema
- Platform: Usuarios de la plataforma
- Customer: Clientes finales
Gestión de Perfiles
- Información personal (nombre, email, teléfono)
- Configuraciones de cuenta
- Preferencias del usuario
- Historial de actividades
Estructura de Datos
Entidad Usuario
typescript
@Entity('users')
export class User {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column()
email: string;
@Column()
password: string;
@Column()
firstName: string;
@Column()
lastName: string;
@Column({ type: 'enum', enum: UserType })
userType: UserType;
@Column({ default: true })
isActive: boolean;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}Endpoints Principales
GET /users- Listar usuariosGET /users/:id- Obtener usuario por IDPOST /users- Crear nuevo usuarioPUT /users/:id- Actualizar usuarioDELETE /users/:id- Eliminar usuarioGET /users/profile- Obtener perfil del usuario actual
Validaciones
DTOs de Entrada
- Validación de formato de email
- Validación de fortaleza de contraseña
- Validación de campos requeridos
- Sanitización de datos de entrada
DTOs de Salida
- Exclusión de información sensible (contraseñas)
- Formateo de fechas
- Transformación de datos según el contexto
Seguridad
- Encriptación de contraseñas con bcrypt
- Validación de permisos por tipo de usuario
- Protección de datos sensibles
- Auditoría de cambios
Relaciones
El módulo de usuarios se relaciona con:
- Auth: Para autenticación y autorización
- Accounts: Para gestión de cuentas
- Sub-accounts: Para subcuentas asociadas
- Accreditations: Para acreditaciones del usuario
- Withdrawals: Para operaciones de retiro
Versión: 1.0 | Actualizado: hace 2 meses