Todas las notificaciones y el mailable de soporte siguen siendo sincronos; este documento debe leerse con ese costo operativo en mente.
InformarDePostulacionAprobada si esta muerto, pero no es una mera duplicacion trivial: su intencion funcional no coincide exactamente con el flujo activo actual.
El onboarding de postulaciones aprobadas mantiene dependencia operativa de correos a administradores, porque el enlace firmado no se entrega al solicitante del mismo modo en el flujo vivo.
El catalogo sigue siendo bastante correcto, pero conviene usarlo junto con el mapa de listeners/eventos y no como documento aislado.
Resumen General
7 clases de notificación personalizadas en app/Notifications/, todas usando únicamente el canal mail. Adicionalmente, la aplicación despacha la notificación VerifyEmail integrada de Laravel y tiene 1 clase Mailable (TicketSoporte). No se usan canales de base de datos, Slack o SMS. Ninguna notificación ni mailable está en cola — aunque algunas importan el trait Queueable, ninguna implementa la interfaz ShouldQueue. 1 clase de notificación parece ser código muerto.
Convención de conteo para presentaciones: si cuenta clases de notificación personalizadas, el número correcto es 7. Si cuenta flujos de correo orientados al usuario, el número práctico es 9 (7 notificaciones personalizadas + VerifyEmail + mailable TicketSoporte).
Nota: Todos los correos de notificación se envían de forma sincrónica durante la petición HTTP, lo que puede causar latencia en endpoints que notifican a múltiples administradores. Desglose del uso del trait Queueable: 3 clases lo usan en el cuerpo de la clase (ResetPasswordNotification, AllyResetPasswordNotification, InformarDePostulacionAprobada); 4 clases importan tanto Queueable como ShouldQueue pero no usan ninguno (imports muertos). config/services.php contiene la configuración OAuth del bot de Slack (líneas 31-36), pero ninguna clase de notificación usa el canal Slack — esta es infraestructura inactiva.
Notificaciones
1. ResetPasswordNotification
Campo
Valor
Archivo
app/Notifications/ResetPasswordNotification.php
Canal
mail
Destinatario
Usuarios con rol === 'cliente'
Disparador
User::sendPasswordResetNotification() — flujo de restablecimiento de contraseña de Laravel
En cola
No — Usa el trait Queueable pero NO implementa la interfaz ShouldQueue, por lo que se ejecuta sincrónicamente.
Asunto
”Restablecer contraseña”
Contenido
Enlace de restablecimiento de contraseña (ruta: password.reset), información de expiración, instrucciones para verificar correo, iniciar sesión y completar perfil
Mensaje de aprobación con un enlace firmado de registro dirigido al solicitante. El flujo activo envía el enlace firmado a los administradores (PostulacionAprobadaParaAdministrador) y solo una confirmación sin el enlace al solicitante (PostulacionAprobadaAlSolicitante); esta notificación es el único camino que entregaría la URL firmada de registro directamente al solicitante, pero nada la despacha hoy
Flujo Evento → Listener → Notificación
PostulacionDeAliadoCreada
└─→ NotificarNuevaPostulacion (listener)
└─→ NuevaPostulacionParaAdministrador → todos los usuarios administrador_comercial