/**
 * Payments Domain
 * 
 * Exports all payment-related contracts, schemas, and provider mappers.
 * 
 * Types are derived from Zod schemas (Schema-First Approach)
 */

// Constants
export { PAYMENT_METHOD_TYPE, PAYMENT_GATEWAY_TYPE, type InvoicePaymentLink } from "./contract";

// Schemas (includes derived types)
export * from "./schema";

// Re-export types for convenience
export type {
  PaymentMethodType,
  PaymentMethod,
  PaymentMethodList,
  PaymentGatewayType,
  PaymentGateway,
  PaymentGatewayList,
} from './schema';

// Provider adapters
export * as Providers from "./providers/index";

// Re-export provider raw types (request and response)
export type {
  // Request params
  WhmcsGetPayMethodsParams,
  // Response types
  WhmcsPaymentMethod,
  WhmcsPaymentMethodListResponse,
  WhmcsPaymentGateway,
  WhmcsPaymentGatewayListResponse,
} from "./providers/whmcs/raw.types";
