dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/dtos/discovereddevice.go (about)

     1  //
     2  // Copyright (C) 2023 IOTech Ltd
     3  //
     4  // SPDX-License-Identifier: Apache-2.0
     5  
     6  package dtos
     7  
     8  import "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/models"
     9  
    10  type DiscoveredDevice struct {
    11  	ProfileName string         `json:"profileName" yaml:"profileName" validate:"len=0|edgex-dto-none-empty-string"`
    12  	AdminState  string         `json:"adminState" yaml:"adminState" validate:"oneof='LOCKED' 'UNLOCKED'"`
    13  	AutoEvents  []AutoEvent    `json:"autoEvents,omitempty" yaml:"autoEvents,omitempty" validate:"dive"`
    14  	Properties  map[string]any `json:"properties,omitempty" yaml:"properties,omitempty"`
    15  }
    16  
    17  type UpdateDiscoveredDevice struct {
    18  	ProfileName *string        `json:"profileName" validate:"omitempty,len=0|edgex-dto-none-empty-string"`
    19  	AdminState  *string        `json:"adminState" validate:"omitempty,oneof='LOCKED' 'UNLOCKED'"`
    20  	AutoEvents  []AutoEvent    `json:"autoEvents" validate:"dive"`
    21  	Properties  map[string]any `json:"properties"`
    22  }
    23  
    24  func ToDiscoveredDeviceModel(dto DiscoveredDevice) models.DiscoveredDevice {
    25  	return models.DiscoveredDevice{
    26  		ProfileName: dto.ProfileName,
    27  		AdminState:  models.AdminState(dto.AdminState),
    28  		AutoEvents:  ToAutoEventModels(dto.AutoEvents),
    29  		Properties:  dto.Properties,
    30  	}
    31  }
    32  
    33  func FromDiscoveredDeviceModelToDTO(d models.DiscoveredDevice) DiscoveredDevice {
    34  	return DiscoveredDevice{
    35  		ProfileName: d.ProfileName,
    36  		AdminState:  string(d.AdminState),
    37  		AutoEvents:  FromAutoEventModelsToDTOs(d.AutoEvents),
    38  		Properties:  d.Properties,
    39  	}
    40  }
    41  
    42  func FromDiscoveredDeviceModelToUpdateDTO(d models.DiscoveredDevice) UpdateDiscoveredDevice {
    43  	adminState := string(d.AdminState)
    44  	return UpdateDiscoveredDevice{
    45  		ProfileName: &d.ProfileName,
    46  		AdminState:  &adminState,
    47  		AutoEvents:  FromAutoEventModelsToDTOs(d.AutoEvents),
    48  		Properties:  d.Properties,
    49  	}
    50  }