sitesAnalysisDomain.go 2.7 KB

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