Tokiva-backend-Node / src /schemas /supplier.schema.ts
anoderb
feat: initial commit of Tokiva POS Node backend for Hugging Face
ef874e6
Raw
History Blame Contribute Delete
907 Bytes
import { z } from 'zod';
const booleanOrNumber = z.union([z.boolean(), z.number()])
.transform((val) => (typeof val === 'boolean' ? (val ? 1 : 0) : val));
export const createSupplierSchema = z.object({
body: z.object({
nama: z.string({ required_error: 'Nama supplier wajib diisi' }).min(1, 'Nama supplier tidak boleh kosong'),
kontak: z.string().optional().nullable(),
nomor_hp: z.string().optional().nullable(),
alamat: z.string().optional().nullable(),
hutang: z.number().optional().default(0),
aktif: booleanOrNumber.optional().default(1),
}),
});
export const updateSupplierSchema = z.object({
body: z.object({
nama: z.string().optional(),
kontak: z.string().optional().nullable(),
nomor_hp: z.string().optional().nullable(),
alamat: z.string().optional().nullable(),
hutang: z.number().optional(),
aktif: booleanOrNumber.optional(),
}),
});