dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/dtos/alarm.go (about) 1 package dtos 2 3 import "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/models" 4 5 // DeviceAlarmDTO represents the DTO for DeviceAlarm. 6 type DeviceAlarmDTO struct { 7 Id string `json:"id"` 8 DeviceName string `json:"device_name"` 9 Origin int64 `json:"origin"` 10 Alarm AlarmDTO `json:"alarm"` 11 Status *models.StatusKind `json:"status,omitempty"` 12 } 13 14 // AlarmDTO represents the DTO for Alarm. 15 type AlarmDTO struct { 16 Message string `json:"message"` 17 Severity models.AlarmSeverity `json:"severity"` 18 Resolved bool `json:"resolved"` 19 Description string `json:"description"` 20 Job string `json:"job"` 21 Annotations map[string]string `json:"annotations"` 22 } 23 24 // FromDeviceStatusUpdateModelToDTO converts a models.DeviceStatusUpdate to DeviceStatusUpdateDTO. 25 func FromDeviceAlarmToDTO(deviceStatus models.DeviceAlarm) DeviceAlarmDTO { 26 return DeviceAlarmDTO{ 27 Id: deviceStatus.Id, 28 DeviceName: deviceStatus.DeviceName, 29 Origin: deviceStatus.Origin, 30 Alarm: AlarmDTO{ 31 Message: deviceStatus.Alarm.Message, 32 Severity: deviceStatus.Alarm.Severity, 33 Resolved: deviceStatus.Alarm.Resolved, 34 Description: deviceStatus.Alarm.Description, 35 Job: deviceStatus.Alarm.Job, 36 Annotations: deviceStatus.Alarm.Annotations, 37 }, 38 Status: deviceStatus.Status, 39 } 40 } 41 42 // ToDeviceStatusUpdateModelFromDTO converts a DeviceStatusUpdateDTO to models.DeviceStatusUpdate. 43 func ToDeviceAlarmFromDTO(dto DeviceAlarmDTO) models.DeviceAlarm { 44 return models.DeviceAlarm{ 45 Id: dto.Id, 46 DeviceName: dto.DeviceName, 47 Origin: dto.Origin, 48 Alarm: models.Alarm{ 49 Message: dto.Alarm.Message, 50 Severity: dto.Alarm.Severity, 51 Resolved: dto.Alarm.Resolved, 52 Description: dto.Alarm.Description, 53 Job: dto.Alarm.Job, 54 Annotations: dto.Alarm.Annotations, 55 }, 56 Status: dto.Status, 57 } 58 } 59 60 type AlarmHistoryDTO struct { 61 DeviceAlarmDTO `json:",inline"` 62 StartAt int64 `json:"start_at"` 63 EndAt *int64 `json:"end_at"` 64 } 65 66 func FromAlarmHistoryToDTO(deviceAlarmHistory models.DeviceAlarmHistory) AlarmHistoryDTO { 67 return AlarmHistoryDTO{ 68 DeviceAlarmDTO: FromDeviceAlarmToDTO(deviceAlarmHistory.DeviceAlarm), 69 StartAt: deviceAlarmHistory.StartAt, 70 EndAt: deviceAlarmHistory.EndAt, 71 } 72 } 73 74 func ToAlarmHistoryFromDTO(dto AlarmHistoryDTO) models.DeviceAlarmHistory { 75 return models.DeviceAlarmHistory{ 76 DeviceAlarm: ToDeviceAlarmFromDTO(dto.DeviceAlarmDTO), 77 StartAt: dto.StartAt, 78 EndAt: dto.EndAt, 79 } 80 }