package models import ( "github.com/sujit-baniya/fiber-boilerplate/app" "gorm.io/gorm" ) // ShieldConfig almacena las credenciales para la API de USITE Shield. type ShieldConfig struct { gorm.Model BaseUrl string `json:"base_url" gorm:"column:base_url;type:text;default:'https://api-shield.u-s.app'"` AdminToken string `json:"admin_token" gorm:"column:admin_token;type:text"` Activo bool `json:"activo" gorm:"column:activo;default:true"` Nota string `json:"nota" gorm:"column:nota;type:text"` } func (ShieldConfig) TableName() string { return "shield_config" } func GetShieldConfig() (*ShieldConfig, error) { var cfg ShieldConfig err := app.Http.Database.DB.Where("activo = true").First(&cfg).Error if err != nil { return nil, err } return &cfg, nil } func UpsertShieldConfig(cfg *ShieldConfig) error { var existing ShieldConfig if err := app.Http.Database.DB.First(&existing).Error; err != nil { return app.Http.Database.DB.Create(cfg).Error } return app.Http.Database.DB.Model(&existing).Updates(map[string]interface{}{ "base_url": cfg.BaseUrl, "admin_token": cfg.AdminToken, "activo": cfg.Activo, "nota": cfg.Nota, }).Error }