Files
soft_usite/rest/routes/renovaciones.go
T
Lizandro GDandClaude Sonnet 5 5607836261 feat: pantalla para administrar chats autorizados del agente de Telegram
Antes la whitelist de telegram_agent_auth solo se podía tocar con curl/Postman
contra /api/v2/agent/auth. Se agrega /app/agente/chats-autorizados con un
CRUD simple, más un botón "buscar mensajes recientes" (UpdatesRecientesDelBot,
vía getUpdates) para descubrir el chat_id de alguien que le acaba de escribir
al bot sin tener que pedírselo por otro medio. Entrada nueva en el menú lateral
del módulo Automatización IA.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 02:37:40 +00:00

124 lines
8.4 KiB
Go

package routes
import (
"github.com/gofiber/fiber/v2"
"github.com/sujit-baniya/fiber-boilerplate/migrations"
"github.com/sujit-baniya/fiber-boilerplate/rest/controllers"
"github.com/sujit-baniya/fiber-boilerplate/rest/middlewares"
)
// RenovacionesRoutes registra todas las rutas del módulo de renovaciones/contratos
func RenovacionesRoutes(protected fiber.Router) {
// ─── Servicios ───────────────────────────────────────────────────
protected.Get("/servicios", middlewares.MenuMiddleware, controllers.ServiciosView)
protected.Get("/api/servicios", controllers.GetServicios)
protected.Get("/api/servicios/select", controllers.GetServiciosSelect)
protected.Post("/api/servicios", controllers.CreateServicio)
protected.Put("/api/servicios/:id", controllers.UpdateServicio)
protected.Delete("/api/servicios/:id", controllers.DeleteServicio)
// ─── Clientes ────────────────────────────────────────────────────
protected.Get("/clientes", middlewares.MenuMiddleware, controllers.ClientesView)
protected.Get("/api/clientes", controllers.GetClientes)
protected.Get("/api/clientes/select", controllers.GetClientesSelect)
protected.Post("/api/clientes", controllers.CreateCliente)
protected.Put("/api/clientes/:id", controllers.UpdateCliente)
protected.Delete("/api/clientes/:id", controllers.DeleteCliente)
// Documentos de cliente
protected.Get("/api/clientes/:clienteID/documentos", controllers.GetClienteDocumentos)
protected.Post("/api/clientes/:clienteID/documentos", controllers.UploadClienteDocumentos)
protected.Delete("/api/clientes/:clienteID/documentos/:docID", controllers.DeleteClienteDocumento)
protected.Get("/api/clientes/:clienteID/documentos/:docID/download", controllers.DownloadClienteDocumento)
// ─── Contratos ───────────────────────────────────────────────────
protected.Get("/contratos", middlewares.MenuMiddleware, controllers.ContratosView)
protected.Get("/api/contratos", controllers.GetContratos)
protected.Post("/api/contratos", controllers.CreateContrato)
protected.Put("/api/contratos/:id", controllers.UpdateContrato)
protected.Delete("/api/contratos/:id", controllers.DeleteContrato)
protected.Post("/api/contratos/:id/renovar", controllers.RenovarContrato)
protected.Post("/api/contratos/:id/enviar-correo", controllers.EnviarCorreoContrato)
protected.Get("/api/contratos/:id/historial", controllers.GetHistorialContrato)
protected.Post("/api/contratos/:id/verificar-pago", controllers.VerificarPagoBold)
protected.Post("/api/contratos/:id/marcar-pagado", controllers.MarcarPagoManual)
// ─── Plantillas de correo ─────────────────────────────────────────
protected.Get("/plantillas-correo", middlewares.MenuMiddleware, controllers.PlantillasView)
protected.Get("/api/plantillas-correo", controllers.GetPlantillas)
protected.Post("/api/plantillas-correo", controllers.CreatePlantilla)
protected.Put("/api/plantillas-correo/:id", controllers.UpdatePlantilla)
protected.Delete("/api/plantillas-correo/:id", controllers.DeletePlantilla)
protected.Get("/api/plantillas-correo/:id/preview", controllers.PreviewPlantilla)
protected.Post("/api/plantillas-correo/:id/test", controllers.TestEnvioPlantilla)
protected.Post("/api/plantillas-correo/validate", controllers.ValidarPlantilla)
// ─── Reglas de notificación ───────────────────────────────────────
protected.Get("/reglas-notificacion", middlewares.MenuMiddleware, controllers.ReglasView)
protected.Get("/api/reglas-notificacion", controllers.GetReglas)
protected.Post("/api/reglas-notificacion", controllers.CreateRegla)
protected.Put("/api/reglas-notificacion/:id", controllers.UpdateRegla)
protected.Delete("/api/reglas-notificacion/:id", controllers.DeleteRegla)
// ─── Historial de notificaciones ─────────────────────────────────
protected.Get("/historial-notificaciones", middlewares.MenuMiddleware, controllers.HistorialView)
protected.Get("/api/historial-notificaciones", controllers.GetHistorial)
protected.Post("/api/historial-notificaciones/:id/reenviar", controllers.ReenviarNotificacion)
protected.Get("/api/historial-notificaciones/:id/preview", controllers.VerPreviewLog)
// ─── Configuración SMTP ───────────────────────────────────────────
protected.Get("/smtp-config", middlewares.MenuMiddleware, controllers.SmtpConfigView)
protected.Get("/api/smtp-config", controllers.GetSmtpConfig)
protected.Post("/api/smtp-config", controllers.SaveSmtpConfig)
protected.Post("/api/smtp-config/test", controllers.TestSmtpConfig)
// ─── Automatización IA: Asistente (chat propio) ───────────────────
protected.Get("/asistente", middlewares.MenuMiddleware, controllers.AsistenteView)
protected.Post("/api/asistente/chat", controllers.PostAsistenteChat)
protected.Delete("/api/asistente/historial", controllers.DeleteAsistenteHistorial)
// ─── Automatización IA: Chats autorizados del agente (Telegram) ────
protected.Get("/agente/chats-autorizados", middlewares.MenuMiddleware, controllers.AgentAuthView)
protected.Get("/api/agent/auth", controllers.AgentAuthList)
protected.Get("/api/agent/auth/recientes", controllers.AgentAuthRecientes)
protected.Post("/api/agent/auth", controllers.AgentAuthCreate)
protected.Delete("/api/agent/auth/:id", controllers.AgentAuthDelete)
// ─── Automatización IA: Plantillas de documento ────────────────────
protected.Get("/automatizacion/plantillas", middlewares.MenuMiddleware, controllers.PlantillasDocumentoView)
protected.Get("/api/plantillas-documento", controllers.GetPlantillasDocumento)
protected.Get("/api/plantillas-documento/:id", controllers.GetPlantillaDocumento)
protected.Post("/api/plantillas-documento", controllers.CreatePlantillaDocumento)
protected.Put("/api/plantillas-documento/:id", controllers.UpdatePlantillaDocumento)
protected.Delete("/api/plantillas-documento/:id", controllers.DeletePlantillaDocumento)
// ─── Automatización IA: Tarifas ─────────────────────────────────────
protected.Get("/automatizacion/tarifas", middlewares.MenuMiddleware, controllers.TarifasView)
protected.Get("/api/tarifas", controllers.GetTarifas)
protected.Post("/api/tarifas", controllers.CreateTarifa)
protected.Put("/api/tarifas/:id", controllers.UpdateTarifa)
protected.Delete("/api/tarifas/:id", controllers.DeleteTarifa)
// ─── Automatización IA: Arquitecturas ───────────────────────────────
protected.Get("/api/arquitecturas", controllers.GetArquitecturas)
protected.Post("/api/arquitecturas", controllers.CreateArquitectura)
// ─── Automatización IA: Cotizaciones y documentos generados ────────
protected.Post("/api/cotizaciones", controllers.CreateCotizacion)
protected.Post("/api/contratos/:id/generar-documento", controllers.GenerarDocumentoContrato)
protected.Get("/api/documentos-generados", controllers.GetDocumentosGenerados)
protected.Get("/api/documentos-generados/:id/download", controllers.DownloadDocumentoGenerado)
// ─── Diagnóstico ──────────────────────────────────────────────────
protected.Post("/api/diagnostico/ciclo-notificaciones", controllers.EjecutarTestCiclo)
// ─── Admin: seed de módulos (idempotente) ─────────────────────────
protected.Post("/api/admin/seed-renovaciones", func(c *fiber.Ctx) error {
migrations.SeedRenovaciones()
return c.JSON(fiber.Map{"ok": true, "message": "Seed de Renovaciones ejecutado correctamente"})
})
protected.Post("/api/admin/seed-automatizacion-ia", func(c *fiber.Ctx) error {
migrations.SeedAutomatizacionIA()
return c.JSON(fiber.Map{"ok": true, "message": "Seed de Automatización IA ejecutado correctamente"})
})
}