namespace Baya.Domain.Entities.Refunds;

/// <summary>
/// The closed <c>refunds.refund_channel</c> code set — <b>how the money physically flows back</b>. The ledger
/// legs are identical across channels (see <c>LedgerPosting.RefundReversal</c>); only the execution + metadata
/// differ. The data-model doc writes the out-of-band bank code as <c>manual_bank</c>; the canonical <b>wire</b>
/// code is <see cref="Manual"/> (per <c>dev/contracts/conventions/money-and-types.md</c>) — they are the same
/// channel, and this is the value stored and serialized.
/// </summary>
public static class RefundChannel
{
    /// <summary>PSP card reversal — effectively immediate, no customer-facing ETA.</summary>
    public const string PspCard = "psp_card";

    /// <summary>BNPL provider revert/update — async, surfaces a ~7–10 business-day customer ETA.</summary>
    public const string BnplRevert = "bnpl_revert";

    /// <summary>Out-of-band bank refund the admin executes and records the reference for (data-model: <c>manual_bank</c>).</summary>
    public const string Manual = "manual";
}
