sitesAnalysisDomain.go 3.1 KB

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