package helper import ( "log" "users_management/m/model/dto/res" "users_management/m/model/entity" "users_management/m/utils/service" ) func ConvertToTowerResponses(towers []entity.Tower, geocoder service.GeocodingService) ([]res.TowerResponse, error) { var responses []res.TowerResponse for _, tower := range towers { var address string if geocoder != nil { generatedAddress, err := geocoder.GetAddressFromCoordinates(tower.Latitude, tower.Longitude) if err != nil { // Log specific geocoding error log.Printf("Geocoding error for tower %s: %v", tower.TowerCode, err) } else { address = generatedAddress } } else { log.Println("WARNING: Geocoder is nil") } towerResp := res.TowerResponse{ ID: tower.ID, DeviceCode: tower.Device.DeviceCode, TowerCode: tower.TowerCode, Longitude: tower.Longitude, Latitude: tower.Latitude, Address: address, CreatedAt: tower.CreatedAt, } responses = append(responses, towerResp) } return responses, nil } func ConvertToTowerIDResponses(tower entity.Tower, geocoder service.GeocodingService) (res.TowerResponse, error) { var address string if geocoder != nil { generatedAddress, err := geocoder.GetAddressFromCoordinates(tower.Latitude, tower.Longitude) if err != nil { // Log specific geocoding error log.Printf("Geocoding error for tower %s: %v", tower.TowerCode, err) } else { address = generatedAddress } } else { log.Println("WARNING: Geocoder is nil") } towerResp := res.TowerResponse{ ID: tower.ID, DeviceCode: tower.Device.DeviceCode, TowerCode: tower.TowerCode, Longitude: tower.Longitude, Latitude: tower.Latitude, Address: address, CreatedAt: tower.CreatedAt, } return towerResp, nil }