From 1840b9725641f4e986f8124eba2d4a9092f54b71 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Mon, 6 Jul 2026 09:54:37 -0500 Subject: [PATCH] =?UTF-8?q?feat(url-monitor):=20registrar=20subm=C3=B3dulo?= =?UTF-8?q?=20en=20men=C3=BA=20bajo=20"Servidores"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SeedUrlMonitor() agrega /app/url-monitor al módulo Servidores idempotentemente - Se llama en el arranque junto al resto de seeds Co-Authored-By: Claude Sonnet 4.6 --- main.go | 1 + migrations/migrate.go | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/main.go b/main.go index 0ec203f..85dfe55 100755 --- a/main.go +++ b/main.go @@ -120,6 +120,7 @@ func main() { models.SeedBalanceData() migrations.SeedContabilidadMenu() migrations.SeedWebSms() + migrations.SeedUrlMonitor() // Iniciar cron de vencimientos services.IniciarCron() defer services.DetenerCron() diff --git a/migrations/migrate.go b/migrations/migrate.go index 0d05ef7..56bd00b 100755 --- a/migrations/migrate.go +++ b/migrations/migrate.go @@ -1004,3 +1004,37 @@ func SeedWebSms() { } log.Println("[SEED] Seed de WebSMS completado.") } + +// SeedUrlMonitor agrega el submódulo "Monitor de URLs" al módulo "Servidores". Es idempotente. +func SeedUrlMonitor() { + db := app.Http.Database.DB + var modulo models.Modules + if err := db.Where("title = ?", "Servidores").First(&modulo).Error; err != nil { + log.Println("[SEED] Módulo 'Servidores' no encontrado, se omite SeedUrlMonitor") + return + } + url := "/app/url-monitor" + var sub models.Submodules + if err := db.Where("url = ?", url).First(&sub).Error; err != nil { + sub = models.Submodules{ + Title: "Monitor de URLs", + Description: "Monitoreo de disponibilidad y latencia de sitios y APIs", + Url: url, + ModuleId: modulo.ID, + ModifiedAt: time.Now(), + } + if err := db.Create(&sub).Error; err != nil { + log.Printf("[SEED] Error creando submódulo 'Monitor de URLs': %v", err) + return + } + log.Printf("[SEED] Submódulo 'Monitor de URLs' creado") + } else if sub.ModuleId != modulo.ID { + db.Model(&sub).Update("module_id", modulo.ID) + } + var roles []models.Roles + db.Find(&roles) + for _, rol := range roles { + db.Model(&rol).Association("Submodules").Append(&[]models.Submodules{sub}) + } + log.Println("[SEED] Seed de Monitor de URLs completado.") +}