package models import ( "fwh-toolbox-server/database" "time" "gorm.io/datatypes" ) var db = database.PgSQL type DataTypes string // DataType const ( DT_API DataTypes = "API" DT_MQTT DataTypes = "MQTT" ) /* * DataType -> ChildType -> SubChildType * * DataType = "API" * 当数据从API请求获取时,数据类型则为 “API” * API类型数据的ChildType为API路径名 * * DataType = "MQTT" * 当数据是从云MQTT日志获取时,数据类型则为 “MQTT” * MQTT类型数据的ChildType为cmdType,如:0、101、201等 */ type SiteOriginalDataModel struct { ID int64 `gorm:"primaryKey"` // 使用雪花ID算法 DataType DataTypes `gorm:"size:64;not null;uniqueIndex:idx_type_sn_time"` ChildType string `gorm:"size:64;not null;uniqueIndex:idx_type_sn_time"` SubChildType string `gorm:"size:64;not null;default:'';uniqueIndex:idx_type_sn_time"` SN string `gorm:"size:64;not null;uniqueIndex:idx_type_sn_time"` DataTime time.Time `gorm:"type:timestamp;not null;default:CURRENT_TIMESTAMP;uniqueIndex:idx_type_sn_time"` // TIMESTAMP WITHOUT TIME ZONE JsonData datatypes.JSON `gorm:"type:jsonb"` // PostgreSQL 使用 jsonb } // 指定 schema func (SiteOriginalDataModel) TableName() string { return "original.site_original_data" } func InitSiteOriginalDataTable() { err := db.AutoMigrate(&SiteOriginalData{}) if err != nil { panic(err) } } func InsertSiteOriginalApiData(type string, ) { }