feat(soporte): avisar por Telegram cuando entra un correo, con resumen si es largo

Los tickets del portal ya avisaban por Telegram; los que entran por correo solo
mandaban un mail al admin, que es justo el canal que nadie mira a tiempo. Ahora
pasan por el mismo despachador de notificaciones, así que se prenden y apagan
desde /app/notif-config como cualquier otro evento — nuevo ticket y respuesta
del cliente por separado.

El cuerpo del aviso es un resumen cuando el correo pasa los 700 caracteres
(hilos reenviados, texto pegado); abajo de eso va tal cual, porque resumir tres
renglones es gastar una llamada de IA para decir lo mismo. Si la IA falla, se
manda recortado. El ticket guarda siempre el texto completo.

DispatchTicketNuevo ahora acepta portalUser nil: un correo no tiene usuario de
portal detrás y no por eso hay que dejar de avisar.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-17 19:12:36 -05:00
co-authored by Claude Opus 5
parent ac47769c27
commit d1bbb4a508
3 changed files with 75 additions and 2 deletions
+4 -1
View File
@@ -10,10 +10,13 @@ import (
// ─── DispatchTicketNuevo ──────────────────────────────────────────────────────
// Notifica al admin cuando un portal user crea un ticket.
// portalUser puede ser nil: los tickets que entran por correo no tienen usuario
// de portal detrás, y no por eso hay que dejar de avisar.
func DispatchTicketNuevo(ticket *models.ProyectoTicket, portalUser *models.PortalUser, proyectoNombre string) {
if ticket == nil || portalUser == nil {
if ticket == nil {
return
}
_ = portalUser
cfg := models.GetNotifConfig("ticket_nuevo", "admin")
if cfg == nil {
return