This commit is contained in:
parent
749f525f83
commit
b0666841f6
7 changed files with 139 additions and 31 deletions
|
|
@ -98,11 +98,34 @@ export std::span<const std::string_view> NoSaleCountries() {
|
|||
return blocked;
|
||||
}
|
||||
|
||||
// Destinations the law forbids, as opposed to the insurance choice above.
|
||||
//
|
||||
// EU sanctions — Regulation 833/2014 for Russia, its Belarus mirror, and the
|
||||
// North Korea embargo — prohibit exporting consumer electronics to these
|
||||
// countries, by customs code and by the luxury-goods value threshold both, and
|
||||
// the prohibition covers indirect routes (a forwarder, a reseller) as much as
|
||||
// a direct parcel. That binds every EU seller as criminal law; there is no
|
||||
// small-shop exemption and no surcharge version of compliance. A separate list
|
||||
// rather than more entries in NoSaleCountries because the refusal needs
|
||||
// different words: "does not" is a choice, "cannot" is the law, and each gets
|
||||
// its own explanation on the terms page.
|
||||
export std::span<const std::string_view> SanctionedCountries() {
|
||||
static constexpr std::array<std::string_view, 3> blocked{ "RU", "BY", "KP" };
|
||||
return blocked;
|
||||
}
|
||||
|
||||
export bool IsSanctioned(std::string_view cc) {
|
||||
return std::ranges::find(SanctionedCountries(), cc) != SanctionedCountries().end();
|
||||
}
|
||||
|
||||
// ISO 3166-1 alpha-2, uppercase, like everything else here. Callers ask this
|
||||
// rather than comparing against "US" themselves, so the policy has exactly one
|
||||
// definition and adding a country later is a one-line change.
|
||||
// definition and adding a country later is a one-line change. Both lists deny:
|
||||
// most callers only need "is this destination for sale", and only the checkout
|
||||
// error message cares which refusal it is (IsSanctioned above).
|
||||
export bool SellsTo(std::string_view cc) {
|
||||
return std::ranges::find(NoSaleCountries(), cc) == NoSaleCountries().end();
|
||||
return !IsSanctioned(cc) &&
|
||||
std::ranges::find(NoSaleCountries(), cc) == NoSaleCountries().end();
|
||||
}
|
||||
|
||||
// Delivery-time tiers. NOT a price concept — every rate comes from the carrier
|
||||
|
|
|
|||
Loading…
Reference in a new issue