UNPKG

@sahabaplus/moyasar

Version:

A comprehensive TypeScript SDK for integrating with the Moyasar payment gateway

66 lines 2.39 kB
import { z } from "zod"; import { Currency } from "../../../shared/types/index"; import { InvoiceStatus } from "../enums"; import { BulkInvoiceLimit } from "../constants"; import { amountSchema } from "../../../shared/validation/index"; export const CreateInvoiceSchema = z.object({ amount: amountSchema, currency: z .string() .transform(val => val.toUpperCase()) .refine(val => Object.values(Currency).includes(val), { message: "Invalid currency", }), description: z .string() .min(1, "description is required") .max(255, "description must be less than 255 characters") .transform(val => val.trim()), callback_url: z.url("callback_url must be a valid URL").optional(), success_url: z.url("success_url must be a valid URL").optional(), back_url: z.url("back_url must be a valid URL").optional(), expired_at: z.coerce .date() .refine(date => new Date(date) > new Date(), "expired_at must be in the future") .optional(), metadata: z.record(z.string(), z.string()).optional(), }); export const BulkCreateInvoiceSchema = z.object({ invoices: z .array(CreateInvoiceSchema) .min(1, "at least one invoice is required") .max(BulkInvoiceLimit.MAX_BULK_INVOICES, `maximum of ${BulkInvoiceLimit.MAX_BULK_INVOICES} invoices allowed per bulk request`), }); export const invoiceSchema = z.object({ id: z.string(), status: z.enum(InvoiceStatus), amount: amountSchema, currency: z.enum(Currency), description: z.string(), logo_url: z .url("logo_url must be a valid URL") .transform(val => val), callback_url: z .url("callback_url must be a valid URL") .transform(val => val) .optional(), success_url: z .url("success_url must be a valid URL") .transform(val => val) .optional(), back_url: z .url("back_url must be a valid URL") .transform(val => val) .optional(), expired_at: z.coerce.date().optional(), created_at: z.coerce.date(), updated_at: z.coerce.date(), metadata: z.record(z.string(), z.string()).optional(), amount_format: z .string() .transform(val => val), url: z .url("url must be a valid URL") .transform(val => val), }); //# sourceMappingURL=schemas.js.map