57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
/**
|
|
* Payments Domain - Contract
|
|
*
|
|
* Constants and types for the payments domain.
|
|
* All validated types are derived from schemas (see schema.ts).
|
|
*/
|
|
|
|
// ============================================================================
|
|
// Payment Method Type Constants
|
|
// ============================================================================
|
|
|
|
export const PAYMENT_METHOD_TYPE = {
|
|
CREDIT_CARD: "CreditCard",
|
|
BANK_ACCOUNT: "BankAccount",
|
|
REMOTE_CREDIT_CARD: "RemoteCreditCard",
|
|
REMOTE_BANK_ACCOUNT: "RemoteBankAccount",
|
|
MANUAL: "Manual",
|
|
} as const;
|
|
|
|
// ============================================================================
|
|
// Payment Gateway Type Constants
|
|
// ============================================================================
|
|
|
|
export const PAYMENT_GATEWAY_TYPE = {
|
|
MERCHANT: "merchant",
|
|
THIRDPARTY: "thirdparty",
|
|
TOKENIZATION: "tokenization",
|
|
MANUAL: "manual",
|
|
} as const;
|
|
|
|
// ============================================================================
|
|
// Business Types (Not validated at runtime)
|
|
// ============================================================================
|
|
|
|
/**
|
|
* Invoice payment link - not validated at runtime
|
|
* This is a business domain type used internally
|
|
*/
|
|
export interface InvoicePaymentLink {
|
|
url: string;
|
|
expiresAt: string;
|
|
gatewayName?: string;
|
|
}
|
|
|
|
// ============================================================================
|
|
// Re-export Types from Schema (Schema-First Approach)
|
|
// ============================================================================
|
|
|
|
export type {
|
|
PaymentMethodType,
|
|
PaymentMethod,
|
|
PaymentMethodList,
|
|
PaymentGatewayType,
|
|
PaymentGateway,
|
|
PaymentGatewayList,
|
|
} from './schema';
|