sitesAnalysisDomain.go 2.9 KB

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