using Domain.Entities; using Features.Breweries.Dtos; using Features.Breweries.Repository; using MediatR; namespace Features.Breweries.Queries.GetBreweryLocationsWithinRange; /// /// Handles proximity searches for brewery locations. /// public class GetBreweryLocationsWithinRangeHandler(IBreweryRepository repository) : IRequestHandler> { /// /// Retrieves and maps nearby brewery locations. /// public async Task> Handle( GetBreweryLocationsWithinRangeQuery request, CancellationToken cancellationToken ) { IEnumerable breweries = await repository.GetAllLocationsWithinRange( new CoordinateData(request.Latitude, request.Longitude), request.RangeInMetres ); return breweries.Select(b => b.ToSimplifiedDto()); } }