feat:data debug config.

This commit is contained in:
2026-05-13 10:04:48 +08:00
parent 25ed68be27
commit 1b447c782d
9 changed files with 251 additions and 8 deletions
+49
View File
@@ -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
}