cadrumo.domain.currency package¶
Currency normalization to euro, so aggregation works from one currency.
Inert namespace. Each contract is reached at its own defining module:
models for MonetaryAmount,
NormalizedAmount and CurrencyNormalizationStatus,
service for CurrencyNormalizationService and the
ExchangeRateProvider protocol it depends on, and errors for
the refusal hierarchy.
The provider contract is original_amount * rate = eur_amount. ECB
EUR-base quote inversion and most-recent-prior-publication fallback live in
cadrumo.adapters.outbound.fx, not in this pure domain package – the
service records a status rather than silently assuming EUR or writing zero
into a filing-grade fact.