namespace ShippingCosts.Contracts; /// /// Allows to get information about the distance between the implicit starting country a given country. /// Not all countries are available, so should be used to check. /// public interface ICountryDistanceProvider { /// /// Returns the distance to the given country, if it is possible to ship to it /// /// Name of the potential target country /// Distance and additional information about the target country CountryDistanceInformation? GetDistanceTo(string countryName); /// /// Checks whether it is possible to ship to the given country /// /// Name of the potential target country /// True if shipping is possible; false otherwise bool IsPossibleCountry(string countryName); } /// /// Represents the distance to and additional regional information about a country /// /// Approximate distance to the target country /// True if the target country shares a border with the source country; false otherwise /// True if the target country is a member of the EU; false otherwise public readonly record struct CountryDistanceInformation(int ApproxDistance, bool IsDirectNeighbor, bool IsEuMember);