103 lines
3.9 KiB
Go
103 lines
3.9 KiB
Go
package helper
|
|
|
|
import (
|
|
"bytes"
|
|
"users_management/m/model/dto/res"
|
|
"users_management/m/model/entity"
|
|
)
|
|
|
|
// IsEmptyUUID checks if a UUID is empty (all zeros)
|
|
func IsEmptyUUID(id [16]byte) bool {
|
|
return bytes.Equal(id[:], make([]byte, 16))
|
|
}
|
|
|
|
func ConvertToDeviceInspectionResponses(inspections []entity.DeviceInspection) []res.DeviceInspectionResponse {
|
|
var responses []res.DeviceInspectionResponse
|
|
|
|
for _, inspection := range inspections {
|
|
response := res.DeviceInspectionResponse{
|
|
ID: inspection.ID,
|
|
DeviceCode: inspection.Device.DeviceCode,
|
|
DeviceType: string(inspection.Device.DeviceType),
|
|
UserName: inspection.User.Name,
|
|
Status: inspection.Status,
|
|
PortUsed: inspection.PortUsed,
|
|
PortAvailable: inspection.PortAvailable,
|
|
CableAmount: inspection.CableAmount,
|
|
Description: inspection.Description,
|
|
ImageURL: inspection.ImageURL,
|
|
InspectionPlacement: inspection.InspectionPlacement, // Full address
|
|
Longitude: inspection.Longitude,
|
|
Latitude: inspection.Latitude,
|
|
InspectionApproval: inspection.InspectionApproval,
|
|
CreatedAt: inspection.CreatedAt,
|
|
UpdatedAt: inspection.UpdatedAt,
|
|
}
|
|
|
|
if inspection.Backbone != nil && !IsEmptyUUID(inspection.Backbone.ID) {
|
|
response.BackboneCode = &inspection.Backbone.BackboneCode
|
|
}
|
|
if inspection.Fishbone != nil && !IsEmptyUUID(inspection.Fishbone.ID) {
|
|
response.FishboneCode = &inspection.Fishbone.FishboneCode
|
|
}
|
|
if inspection.Tower != nil && !IsEmptyUUID(inspection.Tower.ID) {
|
|
response.TowerCode = &inspection.Tower.TowerCode
|
|
}
|
|
|
|
responses = append(responses, response)
|
|
}
|
|
|
|
return responses
|
|
}
|
|
|
|
|
|
func ConvertToDeviceInspectionDetailResponse(inspection entity.DeviceInspection) res.DeviceInspectionDetailResponse {
|
|
response := res.DeviceInspectionDetailResponse{
|
|
ID: inspection.ID,
|
|
Device: res.DeviceInfo{
|
|
ID: inspection.Device.ID,
|
|
DeviceCode: inspection.Device.DeviceCode,
|
|
DeviceType: string(inspection.Device.DeviceType),
|
|
},
|
|
User: res.UserInfo{
|
|
ID: inspection.User.ID,
|
|
Name: inspection.User.Name,
|
|
Username: inspection.User.Username,
|
|
},
|
|
Status: inspection.Status,
|
|
PortUsed: inspection.PortUsed,
|
|
PortAvailable: inspection.PortAvailable,
|
|
CableAmount: inspection.CableAmount,
|
|
Description: inspection.Description,
|
|
ImageURL: inspection.ImageURL,
|
|
InspectionPlacement: inspection.InspectionPlacement, // Full address
|
|
Longitude: inspection.Longitude,
|
|
Latitude: inspection.Latitude,
|
|
InspectionApproval: inspection.InspectionApproval,
|
|
CreatedAt: inspection.CreatedAt,
|
|
UpdatedAt: inspection.UpdatedAt,
|
|
}
|
|
|
|
if inspection.Backbone != nil && !IsEmptyUUID(inspection.Backbone.ID) {
|
|
response.Backbone = &res.BackboneInfo{
|
|
ID: inspection.Backbone.ID,
|
|
BackboneCode: inspection.Backbone.BackboneCode,
|
|
}
|
|
}
|
|
|
|
if inspection.Fishbone != nil && !IsEmptyUUID(inspection.Fishbone.ID) {
|
|
response.Fishbone = &res.FishboneInfo{
|
|
ID: inspection.Fishbone.ID,
|
|
FishboneCode: inspection.Fishbone.FishboneCode,
|
|
}
|
|
}
|
|
|
|
if inspection.Tower != nil && !IsEmptyUUID(inspection.Tower.ID) {
|
|
response.Tower = &res.TowerInfo{
|
|
ID: inspection.Tower.ID,
|
|
TowerCode: inspection.Tower.TowerCode,
|
|
}
|
|
}
|
|
|
|
return response
|
|
} |