@aajsa/moyasar-client
Version:
A lightweight and type-safe TypeScript client for interacting with Moyasar Payment Gateway APIs.
59 lines (57 loc) • 1.45 kB
JavaScript
import { MetaResponseSchema, paramPathIdSchema } from "./common.js";
import { z } from "zod/v4-mini";
//#region src/schema/settlement.ts
const RecipientTypeEnum = z.enum([
"Entity",
"Platform",
"Beneficiary"
]);
const SettlementsResponseSchema = z.object({
id: z.uuid(),
recipient_type: RecipientTypeEnum,
recipient_id: z.uuid(),
currency: z.string().check(z.length(3)),
amount: z.number(),
fee: z.number(),
tax: z.number(),
reference: z.string(),
settlement_count: z.number(),
invoice_url: z.nullish(z.url()),
csv_list_url: z.nullish(z.url()),
pdf_list_url: z.nullish(z.url()),
created_at: z.string()
});
const settlementsEndpoints = {
getSettlementId: {
path: "/settlements/:id",
method: "GET",
params: paramPathIdSchema,
output: SettlementsResponseSchema
},
listSettlements: {
path: "/settlements",
method: "GET",
query: z.partial(z.object({
page: z.number(),
id: z.uuid(),
"created[gt]": z.string(),
"created[lt]": z.string()
})),
output: z.object({
settlements: z.nullish(z.array(SettlementsResponseSchema)),
meta: MetaResponseSchema
})
},
getSettlementsLines: {
path: "/settlements/:id/lines",
method: "GET",
params: paramPathIdSchema,
query: z.partial(z.object({ page: z.number() })),
output: z.object({
settlements: z.nullish(z.array(SettlementsResponseSchema)),
meta: MetaResponseSchema
})
}
};
//#endregion
export { RecipientTypeEnum, settlementsEndpoints };