package domain import ( "go.mongodb.org/mongo-driver/bson/primitive" ) type SiteAnalysisInfo struct { Id primitive.ObjectID `bson:"_id" json:"id"` Sn string `bson:"sn" json:"sn"` Description string `bson:"description" json:"description"` Item []string `bson:"item" json:"item"` Progress Progress `bson:"progress" json:"progress"` Trigger *Trigger `bson:"trigger,omitempty" json:"trigger,omitempty"` } type SiteAnalysisOptions struct { EnableTimeline bool `bson:"enableTimeline" json:"enableTimeline"` EnableRuntime bool `bson:"enableRuntime" json:"enableRuntime"` } type SiteAnalysisConfigWrite struct { Id primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"` Sn string `bson:"sn" json:"sn"` Description string `bson:"description" json:"description"` TimePeriod [2]string `bson:"timePeriod" json:"timePeriod"` Options SiteAnalysisOptions `bson:"options"` } type SiteAnalysisConfig struct { Id primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"` Sn string `bson:"sn" json:"sn"` Description string `bson:"description" json:"description"` TimePeriod [2]string `bson:"timePeriod" json:"timePeriod"` Options SiteAnalysisOptions `bson:"options"` Item []string `bson:"item" json:"item"` Progress Progress `bson:"progress" json:"progress"` Trigger Trigger `bson:"trigger" json:"trigger"` Data SiteAnalysisData `bson:"data" json:"data"` } type TaskSiteAnalysis struct { Id primitive.ObjectID `bson:"_id" json:"id"` Sn string `bson:"sn" json:"sn"` TimePeriod [2]string `bson:"timePeriod" json:"timePeriod"` Options SiteAnalysisOptions `bson:"options"` } type SiteAnalysisData struct { Timeline []TimelineItem `bson:"timeline" json:"timeline"` Runtime []RuntimeItem `bson:"runtime" json:"runtime"` } /************** Timeline **************/ type TimelineType string // 'offline' 'online' '' ... const ( TimelineOffline TimelineType = "offline" TimelineOnline TimelineType = "online" TimelineModeChange TimelineType = "mode_change" TimelineEvent TimelineType = "event" TimelineAlarm TimelineType = "alarm" ) type TimelineItem struct { Time string `bson:"time" json:"time"` // YYYY-MM-DD HH:mm:SS Type TimelineType `bson:"type" json:"type"` Info *string `bson:"info" json:"info"` // 时间点的说明信息 Data *string `bson:"data" json:"data"` // 时间点的详细数据 JSON string } /************** Runtime **************/ type RuntimeItem struct { Time string `bson:"time" json:"time"` // YYYY-MM-DD HH:mm:SS Data_201 string `bson:"data_201" json:"data_201"` // JSON数据 }