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  }