57 lines
1.7 KiB
TypeScript
Raw Normal View History

/**
* 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';