sitesAnalysisDomain.go 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. }
  50. /************** Timeline **************/
  51. type TimelineType string // 'offline' 'online' '' ...
  52. const (
  53. TimelineOffline TimelineType = "offline"
  54. TimelineOnline TimelineType = "online"
  55. TimelineModeChange TimelineType = "mode_change"
  56. TimelineEvent TimelineType = "event"
  57. TimelineAlarm TimelineType = "alarm"
  58. )
  59. type TimelineItem struct {
  60. Time string `bson:"time" json:"time"` // YYYY-MM-DD HH:mm:SS
  61. Type TimelineType `bson:"type" json:"type"`
  62. Info *string `bson:"info" json:"info"` // 时间点的说明信息
  63. Data *string `bson:"data" json:"data"` // 时间点的详细数据 JSON string
  64. }