sitesAnalysisDomain.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package domain
  2. import (
  3. "go.mongodb.org/mongo-driver/bson/primitive"
  4. )
  5. type SiteAnalysisInfo struct {
  6. Id primitive.ObjectID `bson:"_id" json:"id"`
  7. Sn string `bson:"sn" json:"sn"`
  8. Description string `bson:"description" json:"description"`
  9. Item []string `bson:"item" json:"item"`
  10. Progress Progress `bson:"progress" json:"progress"`
  11. Trigger *Trigger `bson:"trigger,omitempty" json:"trigger,omitempty"`
  12. }
  13. type SiteAnalysisOptions struct {
  14. EnableTimeline bool `bson:"enableTimeline" json:"enableTimeline"`
  15. EnableRuntime bool `bson:"enableRuntime" json:"enableRuntime"`
  16. }
  17. type SiteAnalysisConfigWrite struct {
  18. Id primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
  19. Sn string `bson:"sn" json:"sn"`
  20. Description string `bson:"description" json:"description"`
  21. TimePeriod [2]string `bson:"timePeriod" json:"timePeriod"`
  22. Options SiteAnalysisOptions `bson:"options"`
  23. }
  24. type SiteAnalysisConfig struct {
  25. Id primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
  26. Sn string `bson:"sn" json:"sn"`
  27. Description string `bson:"description" json:"description"`
  28. TimePeriod [2]string `bson:"timePeriod" json:"timePeriod"`
  29. Options SiteAnalysisOptions `bson:"options"`
  30. Item []string `bson:"item" json:"item"`
  31. Progress Progress `bson:"progress" json:"progress"`
  32. Trigger Trigger `bson:"trigger" json:"trigger"`
  33. Data SiteAnalysisData `bson:"data" json:"data"`
  34. }
  35. type TaskSiteAnalysis struct {
  36. Id primitive.ObjectID `bson:"_id" json:"id"`
  37. Sn string `bson:"sn" json:"sn"`
  38. TimePeriod [2]string `bson:"timePeriod" json:"timePeriod"`
  39. Options SiteAnalysisOptions `bson:"options"`
  40. }
  41. type SiteAnalysisData struct {
  42. Timeline []TimelineItem `bson:"timeline" json:"timeline"`
  43. Runtime []RuntimeItem `bson:"runtime" json:"runtime"`
  44. }
  45. /************** Timeline **************/
  46. type TimelineType string // 'offline' 'online' '' ...
  47. const (
  48. TimelineOffline TimelineType = "offline"
  49. TimelineOnline TimelineType = "online"
  50. TimelineModeChange TimelineType = "mode_change"
  51. TimelineEvent TimelineType = "event"
  52. TimelineAlarm TimelineType = "alarm"
  53. )
  54. type TimelineItem struct {
  55. Time string `bson:"time" json:"time"` // YYYY-MM-DD HH:mm:SS
  56. Type TimelineType `bson:"type" json:"type"`
  57. Info *string `bson:"info" json:"info"` // 时间点的说明信息
  58. Data *string `bson:"data" json:"data"` // 时间点的详细数据 JSON string
  59. }
  60. /************** Runtime **************/
  61. type RuntimeItem struct {
  62. Time string `bson:"time" json:"time"` // YYYY-MM-DD HH:mm:SS
  63. Data_201 string `bson:"data_201" json:"data_201"` // JSON数据
  64. }