- Implement AddressReconcileQueueService to handle address reconciliation jobs between WHMCS and Salesforce. - Define job data structure and queue configuration for retries and error handling. - Add methods for enqueueing reconciliation jobs and retrieving queue health metrics. feat: create loading components for various services in the portal - Add loading skeletons for Internet, SIM, VPN, and public services configuration. - Implement loading states for account-related views including account details, services, and verification settings. - Introduce loading states for support case details and subscription actions. feat: implement OTP input component for user verification - Create OtpInput component to handle 6-digit OTP input with auto-focus and navigation. - Add LoginOtpStep component for OTP verification during login, including countdown timer and error handling. feat: define address domain constants for validation - Establish constants for address field length limits to ensure compliance with WHMCS API constraints. - Include maximum lengths for address fields and user input fields to maintain data integrity.
50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
/**
|
|
* 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";
|