barsa d5e22f14f5 feat: add address reconciliation queue service for Salesforce integration
- 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.
2026-02-03 11:48:49 +09:00

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";