using CityInfo.API.Entities; namespace CityInfo.API.Services { public interface ICityInfoRepository { Task> GetCitiesAsync(); Task<(IEnumerable, PaginationMetadata)> GetCitiesAsync(string? name, string? searchQuery, int pageNumber, int pageSize); Task GetCityAsync(int cityId, bool includePointsOfinterest); Task CityExistAsync(int cityId); Task> GetPointsOfinterestForCityAsync(int cityId); Task GetPointOfInterestForCityAsync(int cityId, int pointOfInterestId); Task CreatePointOfInterestForCityAsync(int cityId, PointOfInterest pointOfInterest); void DeletePointOfInterest(PointOfInterest pointOfInterest); Task CityNameMatchesCityId(string? cityName, int cityId); Task SaveChangesAsync(); } }