#nullable enable
namespace Baya.Application.Contracts.Payments;

/// <summary>
/// Toman ↔ Rial (IRR) conversion <b>at the provider boundary only</b> — the provider speaks Toman, our books
/// speak IRR. Conversion happens <b>solely</b> here, never internally: everything inside the domain is already
/// IRR <c>long</c>. The mock multiplies Toman ×10 → IRR (and divides back for display); the multiplier is
/// config-driven so a currency redenomination is a config change, not a code change.
/// </summary>
public interface ICurrencyNormalizer
{
    /// <summary>Normalizes an amount in <paramref name="currency"/> (<c>IRR</c>/<c>TOMAN</c>) to IRR.</summary>
    long ToIrr(long amount, string currency);

    /// <summary>Converts an IRR amount back to Toman for display only.</summary>
    long ToDisplayToman(long amountIrr);
}
