Skip to main content

User DTO

Interfaz que define la estructura estándar de un usuario del sistema ProductTrack, incluyendo tanto usuarios individuales como empresariales, desarrolladores y miembros del equipo de trabajo empresarial.


🔍 Ubicación

src/models/UserDTO.ts


🧩 Propiedades

PropiedadTipoRequeridoDescripción
usernamestring✅ SíNombre de usuario único.
correostring✅ SíCorreo electrónico del usuario.
passwordstring✅ SíContraseña cifrada.
nombreCompletostring✅ SíNombre completo del usuario.
telefonostring✅ SíNúmero telefónico del usuario.
direccionstring✅ SíDirección del usuario.
fotoPerfilstring (opcional)❌ NoURL de la imagen de perfil del usuario.
tipoUsuario"INDIVIDUAL" | "EMPRESARIAL" (opcional)❌ NoClasificación del usuario según su tipo.
nombreEmpresastring (opcional)❌ NoNombre de la empresa (solo si el usuario es EMPRESARIAL).
nitstring (opcional)❌ NoNúmero de identificación tributaria (para usuarios EMPRESARIALES).
rol"USUARIO" | "EQUIPO" | "ADMIN" | "DESARROLLADOR"✅ SíRol principal del usuario dentro del sistema.
rolEquipo"LECTOR" | "COMENTARISTA" | "EDITOR" (opcional)❌ NoRol dentro del equipo empresarial (solo si rol es "EQUIPO").
estado"activo" | "inactivo" (opcional)❌ NoEstado del usuario en el sistema.
empresaIdnumber (opcional)❌ NoIdentificador de la empresa asociada (si aplica).
perfilCompletoboolean (opcional)❌ NoIndica si el perfil del usuario ha sido completamente llenado.

🧠 Observaciones

  • Los campos nombreEmpresa, nit, empresaId y rolEquipo solo aplican cuando el tipoUsuario es "EMPRESARIAL" y el rol es "EQUIPO".
  • El campo fotoPerfil es opcional, útil para personalización visual en el sistema.
  • El estado puede usarse para deshabilitar usuarios sin eliminarlos.
  • El rol define el nivel de acceso al sistema, y debe ser gestionado cuidadosamente.
  • perfilCompleto puede servir para habilitar o restringir funcionalidades según el avance del usuario en el registro.

🔐 ChangePasswordDTO

Clase utilizada para la operación de cambio de contraseña.


🧩 Estructura

export class ChangePasswordDTO {
id!: number;
currentPassword!: string;
newPassword!: string;
}

✅ Validaciones

Utiliza decoradores de la librería class-validator para garantizar la integridad de los datos recibidos en el cambio de contraseña:

PropiedadTipoValidaciónDescripción
idnumber@IsInt()ID del usuario que solicita el cambio.
currentPasswordstring@IsString(), @MinLength(6)Contraseña actual del usuario.
newPasswordstring@IsString(), @MinLength(6)Nueva contraseña a establecer.

🧠 Notas adicionales

  • El campo id se castea explícitamente a número usando class-transformer (@Type(() => Number)).
  • Esta clase se usa típicamente en controladores para recibir payloads seguros al cambiar la contraseña.