// Payment.method is free-text — online checkouts get tagged with whatever wallet type the // gateway reports (apple_pay, google_pay, ...), not just the manual-entry methods below. // Mirrors normalizeUserMethod in backend/src/controllers/paymentController.js: card-network // wallets count as "card" (same settlement, no separate float); anything else is "other". const USER_FACING_METHODS = ["cash", "card", "eft", "voucher"]; const CARD_ALIASES = ["apple_pay", "google_pay"]; const METHOD_LABELS: Record = { cash: "Cash", card: "Card", eft: "EFT", voucher: "Voucher", other: "Other", }; export function normalizePaymentMethod(method: string | null | undefined): string { const m = String(method || "").toLowerCase(); if (USER_FACING_METHODS.includes(m)) return m; if (CARD_ALIASES.includes(m)) return "card"; return "other"; } export function formatPaymentMethod(method: string | null | undefined): string { if (!method) return "Payment"; return METHOD_LABELS[normalizePaymentMethod(method)]; }