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