/** * Billing Domain - Constants * * Domain constants for billing validation and business rules. */ import type { Currency } from "./schema.js"; // ============================================================================ // Currency Defaults // ============================================================================ /** * Single fallback currency for both BFF and Portal when WHMCS currency data * is unavailable. This ensures a single source of truth for default currency * formatting behaviour. */ export const FALLBACK_CURRENCY: Currency = { id: 1, code: "JPY", prefix: "¥", suffix: "", format: "1", rate: "1.00000", }; // ============================================================================ // Invoice Validation Constants // ============================================================================ /** * Pagination limits for invoice queries */ export const INVOICE_PAGINATION = { MIN_LIMIT: 1, MAX_LIMIT: 100, DEFAULT_LIMIT: 10, DEFAULT_PAGE: 1, } as const; /** * Valid statuses for WHMCS GetInvoices API filtering. * * WHMCS only supports these 5 statuses for list queries. * Draft, Pending, Refunded exist on invoices but cannot be used as query filters. * * @see INVOICE_STATUS in contract.ts for all possible invoice statuses */ export const VALID_INVOICE_QUERY_STATUSES = [ "Paid", "Unpaid", "Cancelled", "Overdue", "Collections", ] as const;