diff --git a/pkg/services/notif_dispatch.go b/pkg/services/notif_dispatch.go index 29c75b0..a5c897e 100644 --- a/pkg/services/notif_dispatch.go +++ b/pkg/services/notif_dispatch.go @@ -13,9 +13,34 @@ func DispatchTicketNuevo(ticket *models.ProyectoTicket, portalUser *models.Porta if ticket == nil || portalUser == nil { return } - msg := fmt.Sprintf("🎫 Nuevo ticket\nProyecto: %s\nCliente: %s\nTítulo: %s\n\n%s", - proyectoNombre, ticket.AutorNombre, ticket.Titulo, ticket.Descripcion) - sendTelegramAdmin(msg) + cfg := models.GetNotifConfig("ticket_nuevo", "admin") + if cfg == nil { + return + } + ticketURL := "/app/tickets" + titulo := fmt.Sprintf("Nuevo ticket: %s", ticket.Titulo) + cuerpo := fmt.Sprintf("Cliente: %s\nProyecto: %s\n%s", ticket.AutorNombre, proyectoNombre, ticket.Descripcion) + + if cfg.CanalSistema { + _ = models.CreateSistemaNotif(&models.SistemaNotificacion{ + TipoUsuario: "admin", + UsuarioID: 0, + Titulo: titulo, + Cuerpo: cuerpo, + Url: ticketURL, + Icono: "🎫", + }) + } + if cfg.CanalEmail { + if adminEmail := getAdminEmail(); adminEmail != "" { + go SendTicketNuevoAdmin(adminEmail, proyectoNombre, ticket.AutorNombre, ticket.Titulo, ticket.Descripcion, ticketURL) + } + } + if cfg.CanalTelegram { + msg := fmt.Sprintf("🎫 Nuevo ticket\nProyecto: %s\nCliente: %s\nTítulo: %s\n\n%s", + proyectoNombre, ticket.AutorNombre, ticket.Titulo, ticket.Descripcion) + sendTelegramAdmin(msg) + } } // ─── DispatchTicketRespuestaCliente ────────────────────────────────────────── @@ -24,9 +49,34 @@ func DispatchTicketRespuestaCliente(ticket *models.ProyectoTicket, contenido str if ticket == nil { return } - msg := fmt.Sprintf("💬 Respuesta de cliente\nProyecto: %s\nCliente: %s\n\n%s", - proyectoNombre, ticket.AutorNombre, contenido) - sendTelegramAdmin(msg) + cfg := models.GetNotifConfig("ticket_respuesta_cliente", "admin") + if cfg == nil { + return + } + ticketURL := "/app/tickets" + titulo := fmt.Sprintf("Respuesta de cliente en: %s", ticket.Titulo) + cuerpo := fmt.Sprintf("Cliente: %s\nProyecto: %s\n%s", ticket.AutorNombre, proyectoNombre, contenido) + + if cfg.CanalSistema { + _ = models.CreateSistemaNotif(&models.SistemaNotificacion{ + TipoUsuario: "admin", + UsuarioID: 0, + Titulo: titulo, + Cuerpo: cuerpo, + Url: ticketURL, + Icono: "💬", + }) + } + if cfg.CanalEmail { + if adminEmail := getAdminEmail(); adminEmail != "" { + go SendTicketRespuestaAdmin(adminEmail, proyectoNombre, ticket.AutorNombre, ticket.Titulo, contenido, ticketURL) + } + } + if cfg.CanalTelegram { + msg := fmt.Sprintf("💬 Respuesta de cliente\nProyecto: %s\nCliente: %s\n\n%s", + proyectoNombre, ticket.AutorNombre, contenido) + sendTelegramAdmin(msg) + } } // ─── DispatchTicketRespuestaAdmin ─────────────────────────────────────────────