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 }