import type { ProjectionConfig } from "./llm-encode.js"; /** * Lean field projections for WayForPay responses. Real responses carry many * fields the LLM doesn't need (raw payment-system metadata, internal flags, * settlement bookkeeping). Keep-lists surface only the fields a human or LLM * agent would realistically consult. * * Pass `verbose: true` on the relevant tool to retrieve the full payload. * * Field choices are starting points — refine after seeing real responses * against a live merchant. */ export const TRANSACTION_LIST_LEAN: ProjectionConfig = { keep: [ "orderReference", "transactionStatus", "amount", "currency", "createdDate", "processingDate", "settlementDate", "settlementReference", "baseAmount", "baseCurrency", "paymentSystem", "cardPan", "email", "phone", "clientEmail", "clientPhone", "clientName", "clientComment", "products", "prroLink", "prroNumber", "reasonCode", "reason", "fee", "settlementAmount", ], }; export const TRANSACTION_STATUS_LEAN: ProjectionConfig = { keep: [ "orderReference", "transactionStatus", "amount", "currency", "processingDate", "createdDate", "settlementDate", "settlementReference", "baseAmount", "baseCurrency", "reasonCode", "reason", "cardPan", "paymentSystem", "email", "clientEmail", "clientPhone", "clientName", "clientComment", "products", "prroLink", "prroNumber", "authCode", "fee", "settlementAmount", ], }; export const REGULAR_STATUS_LEAN: ProjectionConfig = { keep: ["orderReference", "status", "amount", "currency", "nextPaymentDate", "reasonCode", "reason"], }; export const MERCHANT_INFO_LEAN: ProjectionConfig = { keep: [ "merchantName", "merchantAccount", "domainName", "email", "phone", "currency", "merchantId", "siteCategory", "isActive", "hasRecurring", ], }; export const BALANCE_LEAN: ProjectionConfig = { keep: [ "balance", "pendingBalance", "availableForWithdraw", "currency", "lastUpdated", "reasonCode", "reason", ], };