feat:data debug config.
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package models
|
||||
|
||||
import "gorm.io/gorm"
|
||||
|
||||
const (
|
||||
DefaultMqttMeasurementExpireDays = 7
|
||||
MqttListenerSettingSingletonID = 1
|
||||
)
|
||||
|
||||
type MqttListenerSetting struct {
|
||||
gorm.Model
|
||||
Enabled bool `gorm:"not null;default:true" json:"enabled"`
|
||||
ExpireDays int `gorm:"type:int;not null;default:7" json:"expireDays"`
|
||||
DeleteExpired bool `gorm:"not null;default:true" json:"deleteExpired"`
|
||||
}
|
||||
|
||||
func (MqttListenerSetting) TableName() string {
|
||||
return "mqtt_listener_settings"
|
||||
}
|
||||
|
||||
func DefaultMqttListenerSetting() MqttListenerSetting {
|
||||
return MqttListenerSetting{
|
||||
Model: gorm.Model{ID: MqttListenerSettingSingletonID},
|
||||
Enabled: true,
|
||||
ExpireDays: DefaultMqttMeasurementExpireDays,
|
||||
DeleteExpired: true,
|
||||
}
|
||||
}
|
||||
|
||||
func EnsureDefaultMqttListenerSetting(db *gorm.DB) error {
|
||||
defaults := DefaultMqttListenerSetting()
|
||||
|
||||
var existing MqttListenerSetting
|
||||
err := db.First(&existing, MqttListenerSettingSingletonID).Error
|
||||
if err == nil {
|
||||
updates := map[string]interface{}{}
|
||||
if existing.ExpireDays <= 0 {
|
||||
updates["expire_days"] = DefaultMqttMeasurementExpireDays
|
||||
}
|
||||
if len(updates) == 0 {
|
||||
return nil
|
||||
}
|
||||
return db.Model(&existing).Updates(updates).Error
|
||||
}
|
||||
if err != nil && err != gorm.ErrRecordNotFound {
|
||||
return err
|
||||
}
|
||||
return db.Create(&defaults).Error
|
||||
}
|
||||
Reference in New Issue
Block a user