using ShippingCosts.Contracts;
namespace ShippingCosts.Implementations;
///
/// A base class for different shipping carriers
///
public abstract class ShippingCostCalculatorBase(ICountryDistanceProvider countryDistanceProvider)
: IShippingCostCalculator
{
protected ICountryDistanceProvider CountryDistanceProvider { get; } = countryDistanceProvider;
public abstract string CarrierName { get; }
public abstract decimal? CalculateShippingCosts(string targetCountry, IMeasuredBox box);
///
/// Calculates the sum of the longest and shortest side of a box
///
/// Dimensions of the box
/// Sum of the longest and shortest side
protected static int SumOfLongestAndShortestSides(IMeasuredBox box)
{
// TODO
return -1;
}
}