50 lines
1.4 KiB
TypeScript
Raw Permalink Normal View History

/**
* Billing Domain - Contract
*
* Constants and types for the billing domain.
* All validated types are derived from schemas (see schema.ts).
*/
// ============================================================================
// Invoice Status Constants
// ============================================================================
/**
* All possible invoice statuses in WHMCS.
*
* Note: Only a subset of these (Paid, Unpaid, Cancelled, Overdue, Collections)
* can be used as filters in the GetInvoices API. Draft, Pending, and Refunded
* exist on invoices but cannot be used as query filters.
*
* @see VALID_INVOICE_QUERY_STATUSES in constants.ts for queryable statuses
* @see InvoiceQueryStatus type for the query filter type
*/
export const INVOICE_STATUS = {
DRAFT: "Draft",
PENDING: "Pending",
PAID: "Paid",
UNPAID: "Unpaid",
OVERDUE: "Overdue",
CANCELLED: "Cancelled",
REFUNDED: "Refunded",
COLLECTIONS: "Collections",
} as const;
// ============================================================================
// Re-export Types from Schema (Schema-First Approach)
// ============================================================================
export type {
InvoiceStatus,
InvoiceQueryStatus,
InvoiceItem,
Invoice,
InvoicePagination,
InvoiceList,
InvoiceSsoLink,
PaymentInvoiceRequest,
BillingSummary,
InvoiceQueryParams,
InvoiceListQuery,
} from "./schema.js";