frontend phase 5 & backend phase 12
This commit is contained in:
@@ -18,6 +18,18 @@ public sealed class SeamOptions
|
||||
public PaymentsOptions Payments { get; set; } = new();
|
||||
public MoadianOptions Moadian { get; set; } = new();
|
||||
public BnplOptions Bnpl { get; set; } = new();
|
||||
public CurrencyOptions Currency { get; set; } = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tunes the mock <c>ICurrencyNormalizer</c> (b12). Toman → IRR multiplies by <see cref="TomanToIrrMultiplier"/>
|
||||
/// (10); IRR passes through. The real adapter reads the multiplier from provider config. Conversion happens only
|
||||
/// at the provider boundary, never internally.
|
||||
/// </summary>
|
||||
public sealed class CurrencyOptions
|
||||
{
|
||||
/// <summary>How many Rial one Toman is (10). A currency redenomination is a config change, not a code change.</summary>
|
||||
public long TomanToIrrMultiplier { get; set; } = 10;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -32,18 +44,32 @@ public sealed class MoadianOptions
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tunes the thin local mock <c>IBnplProvider</c> b11 registers until b12 ships the real seam. By default a
|
||||
/// revert/update succeeds and the provider keeps its commission (null reversal). The real b12 adapter ignores
|
||||
/// these.
|
||||
/// Tunes the deterministic mock <c>IBnplProvider</c> (b12, superset of the b11 revert-only stub). The mock
|
||||
/// commission % drives the settle (net = order − commission); the real adapter reads the actual deducted amount
|
||||
/// from each settlement and ignores these knobs.
|
||||
/// </summary>
|
||||
public sealed class BnplOptions
|
||||
{
|
||||
/// <summary>When true, every revert/update fails so the refund-channel-refused path is testable.</summary>
|
||||
/// <summary>When true, token/revert/update/cancel all fail so the provider-declined paths are testable.</summary>
|
||||
public bool ForceFailure { get; set; }
|
||||
|
||||
/// <summary>When true, the mock reports the provider returned its commission (a non-null, zero reversal
|
||||
/// placeholder) so the <c>provider_commission_reversed_amount</c> reconciliation is exercised.</summary>
|
||||
public bool ReverseProviderCommission { get; set; }
|
||||
|
||||
/// <summary>The mock provider merchant commission rate (fraction) the settle deducts. Read from the response
|
||||
/// by the handler, never hardcoded there; the real adapter reads the true per-contract deducted amount.</summary>
|
||||
public decimal CommissionRate { get; set; } = 0.10m;
|
||||
|
||||
/// <summary>When true the mock settle stamps <c>settled_at = now</c>; false models the non-instant
|
||||
/// (deferred/T+1–3/weekly) settlement with a null <c>settled_at</c>.</summary>
|
||||
public bool SettlementInstant { get; set; } = true;
|
||||
|
||||
/// <summary>The provider credit ceiling (IRR); an order above it returns <c>ceiling_exceeded</c>.</summary>
|
||||
public long CreditCeilingIrr { get; set; } = 2_000_000_000;
|
||||
|
||||
/// <summary>A designated test mobile that returns <c>not_eligible</c> so the fall-back-to-card path is testable.</summary>
|
||||
public string NotEligibleMobile { get; set; } = "09120000099";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user