File size: 907 Bytes
ef874e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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(),
  }),
});