import z from "zod";
import { safeParseObjectToSchema } from "../../utils/schema.utils.js";
export const CURRENCY_CODES = [
"AFN",
"ALL",
"DZD",
"AOA",
"XCD",
"ARS",
"AMD",
"AWG",
"AUD",
"EUR",
"AZN",
"BHD",
"BDT",
"BBD",
"BYN",
"BZD",
"XOF",
"BTN",
"BOB",
"BAM",
"BWP",
"BRL",
"BND",
"BGN",
"BIF",
"KHR",
"XAF",
"CAD",
"CLF",
"CNY",
"COU",
"KMF",
"CRC",
"CZK",
"DKK",
"DJF",
"DOP",
"CDF",
"USD",
"EGP",
"ERN",
"SZL",
"ETB",
"FJD",
"GMD",
"GEL",
"GHS",
"GTQ",
"GNF",
"GYD",
"HNL",
"HKD",
"HUF",
"ISK",
"INR",
"IDR",
"IQD",
"ILS",
"JMD",
"JPY",
"JOD",
"KZT",
"KES",
"KWD",
"KGS",
"LAK",
"LBP",
"ZAR",
"LRD",
"LYD",
"MOP",
"MGA",
"MWK",
"MYR",
"MVR",
"MRU",
"MUR",
"MXV",
"MDL",
"MNT",
"MAD",
"MZN",
"MMK",
"NPR",
"ANG",
"NZD",
"NIO",
"NGN",
"MKD",
"NOK",
"OMR",
"PKR",
"PGK",
"PYG",
"PEN",
"PHP",
"PLN",
"QAR",
"RON",
"RUB",
"RWF",
"WST",
"SAR",
"RSD",
"SCR",
"SLE",
"SGD",
"SBD",
"SOS",
"KRW",
"SSP",
"LKR",
"SRD",
"SEK",
"CHW",
"TWD",
"TJS",
"TZS",
"THB",
"TOP",
"TTD",
"TND",
"TRY",
"TMT",
"UGX",
"UAH",
"AED",
"GBP",
"UYW",
"UZS",
"VUV",
"VND",
"YER",
"ZMW",
"ZWL",
] as const;
const currencyInput = {
currency: z
.enum(CURRENCY_CODES, {
errorMap: (_val, ctx) => {
return { message: `'${ctx.data}' currency is not supported yet` };
},
})
.nullish(),
};
export const CurrencyPreferenceInputSchema = z.object({
...currencyInput,
});
export type CurrencyPreferenceInput = z.infer<
typeof CurrencyPreferenceInputSchema
>;
export function parseCurrencyPreferenceInput(currencyInput: unknown) {
return safeParseObjectToSchema(currencyInput, CurrencyPreferenceInputSchema);
}