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
deletedAt
seanull
(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
createMany
si 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.