Files
soft_usite/pkg/models/shield_config.go
T
2026-05-15 23:22:35 -05:00

40 lines
1.2 KiB
Go

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
}