namespace Baya.Domain.Entities.Invoices;

/// <summary>
/// The closed <c>invoices.moadian_status</c> code set — the سامانه مودیان e-invoicing submission state. The mock
/// <c>IMoadianClient</c> leaves a newly issued invoice at <see cref="Pending"/> with no reference; a config
/// switch can force <see cref="Registered"/> (with a fake 22-digit ref) so the reconciliation path is testable.
/// The real adapter walks <see cref="Pending"/> → <see cref="Submitted"/> → <see cref="Registered"/>.
/// </summary>
public static class MoadianStatus
{
    /// <summary>Issued locally; not yet sent to مودیان.</summary>
    public const string Pending = "pending";

    /// <summary>Sent to مودیان; awaiting the registered reference.</summary>
    public const string Submitted = "submitted";

    /// <summary>مودیان returned the 22-digit reference — the invoice is officially registered.</summary>
    public const string Registered = "registered";

    /// <summary>مودیان rejected the submission.</summary>
    public const string Failed = "failed";
}
