Servicio de Notificaciones de Actualización
Este servicio se encarga de enviar notificaciones de tipo ACTUALIZACION_APP a todos los usuarios registrados que tengan habilitadas las preferencias correspondientes.
🔍 Ubicación
src/services/notificaciones/actualizacion.service.ts
📦 Dependencias
prisma— Cliente de base de datos para manejar usuarios y notificaciones.TipoNotificacion— Enumeración generada por Prisma que define los tipos de notificación.puedeNotificar— Función auxiliar que valida si un usuario tiene habilitado recibir un tipo de notificación específico.
📜 Funciones
1. notificarActualizacionApp(titulo: string, mensaje: string)
Envía una notificación de tipo ACTUALIZACION_APP a todos los usuarios activos (no eliminados) que tengan habilitada esta preferencia.
Parámetros:
titulo: Texto que será el título de la notificación.mensaje: Contenido principal de la notificación.
Flujo de ejecución:
- Obtiene todos los usuarios cuyo
deletedAtseanull(soft delete). - Si no hay usuarios, muestra una advertencia y finaliza.
- Itera sobre cada usuario y verifica, usando
puedeNotificar, si este puede recibir notificaciones de tipoACTUALIZACION_APP. - Crea un arreglo con las notificaciones a enviar.
- Inserta todas las notificaciones en la base de datos mediante
createManysi hay alguna pendiente.
Estructura de la notificación generada:
{
idUsuario: number;
tipo: TipoNotificacion.ACTUALIZACION_APP;
titulo: string;
mensaje: string;
leida: false;
}
Retorno:
Promise<void>— No retorna datos, pero crea registros en la tabla de notificaciones.
🧠 Observaciones
- Este servicio respeta las preferencias de notificación del usuario mediante
puedeNotificar. - Utiliza soft delete para determinar usuarios activos (
deletedAt: null). - Agrupa las inserciones en una sola operación (
createMany) para mejorar el rendimiento.