feat(url-monitor): registrar submódulo en menú bajo "Servidores"

- 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 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-06 09:54:37 -05:00
co-authored by Claude Sonnet 4.6
parent d0ba75c559
commit 1840b97256
2 changed files with 35 additions and 0 deletions
+1
View File
@@ -120,6 +120,7 @@ func main() {
models.SeedBalanceData()
migrations.SeedContabilidadMenu()
migrations.SeedWebSms()
migrations.SeedUrlMonitor()
// Iniciar cron de vencimientos
services.IniciarCron()
defer services.DetenerCron()
+34
View File
@@ -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.")
}