Skip to main content

log.interface.ts

Este archivo define las interfaces utilizadas en el proceso de autenticación y generación de tokens para el login de usuarios.

🔍 Ubicación

src/interfaces/log.interface.ts


📥 LoginRequest

export interface LoginRequest {
correo: string;
password: string;
}

Descripción Representa el cuerpo (body) esperado en una solicitud de inicio de sesión.

Campos

CampoTipoDescripción
correostringCorreo electrónico del usuario.
passwordstringContraseña del usuario.

📤 LoginResponse

export interface LoginResponse {
token: string;
requiereCompletarPerfil: boolean;
user: {
idUsuario: number;
username: string;
correo: string;
rol: string;
tipoUsuario: string | null;
rolEquipo: string;
perfilCompleto: boolean;
empresaId: number | null;
};
}

Descripción Representa la estructura de la respuesta enviada al cliente después de un inicio de sesión exitoso.

CampoTipoDescripción
tokenstringJWT generado para autenticar futuras solicitudes.
requiereCompletarPerfilbooleanIndica si el usuario debe completar su perfil.
userobjectInformación del usuario autenticado.
├─ idUsuarionumberID del usuario.
├─ usernamestringNombre de usuario o nombre completo.
├─ correostringCorreo electrónico del usuario.
├─ rolstringRol principal del usuario (ADMIN, EMPRESARIAL, EQUIPO, etc).
├─ tipoUsuariostring | nullTipo de usuario (EMPRESARIAL, INDIVIDUAL, etc.), puede ser nulo.
├─ rolEquipostringRol dentro del equipo (LECTOR, COMENTARISTA, EDITOR).
├─ perfilCompletobooleanIndica si el usuario ya completó su perfil.
└─ empresaIdnumber | nullID de la empresa a la que pertenece, si aplica.

📝 Uso común

Estas interfaces se utilizan principalmente en los controladores y servicios relacionados al login para garantizar el tipo de datos esperado.

Copiar código
async loginUsuario(data: LoginRequest): Promise<LoginResponse> {
// lógica de autenticación...
}