import { isoly } from "isoly" import { isly } from "isly" import { isly as isly2 } from "isly2" import { Supplier as modelSupplier } from "./Supplier" import { zod } from "./zod" export type Realm = zod.infer export namespace Realm { export const realms = ["test", "uk", "eea"] as const export const type = isly.string(realms) export const typeZod = zod.enum(realms) export const type2 = isly2 .string("value", ...realms) .rename("Realm") .describe("Financial jurisdiction.") export function toString(): string { return realms.toString().replaceAll(",", ", ") + "." } export const currency: Record = { test: "EUR", uk: "GBP", eea: "EUR" } export const suppliers: Record = { test: ["paxgiro", "bankingcircle"], uk: ["clearbank", "bankingcircle"], eea: [], } export interface Suppliers extends Record { test: ["paxgiro", "bankingcircle"] uk: ["clearbank", "bankingcircle"] eea: [] } export type Supplier

= Pick[P][number] export namespace Supplier { export function is(realm: Realm, supplier: modelSupplier | any): supplier is Supplier { return suppliers[realm].includes(supplier) } } }