Spaces:
Sleeping
Sleeping
| import { z } from 'zod'; | |
| const booleanOrNumber = z.union([z.boolean(), z.number()]) | |
| .transform((val) => (typeof val === 'boolean' ? (val ? 1 : 0) : val)); | |
| export const createMemberSchema = z.object({ | |
| body: z.object({ | |
| kode: z.string({ required_error: 'Kode member wajib diisi' }).min(1, 'Kode member tidak boleh kosong'), | |
| nama: z.string({ required_error: 'Nama member wajib diisi' }).min(1, 'Nama member tidak boleh kosong'), | |
| nomor_hp: z.string({ required_error: 'Nomor HP wajib diisi' }).min(1, 'Nomor HP tidak boleh kosong'), | |
| alamat: z.string().optional().nullable(), | |
| limit_bon: z.number().optional().default(0), | |
| foto_url: z.string().optional().nullable(), | |
| aktif: booleanOrNumber.optional().default(1), | |
| }), | |
| }); | |
| export const updateMemberSchema = z.object({ | |
| body: z.object({ | |
| nama: z.string().optional(), | |
| nomor_hp: z.string().optional(), | |
| alamat: z.string().optional().nullable(), | |
| total_poin: z.number().optional(), | |
| limit_bon: z.number().optional(), | |
| total_bon: z.number().optional(), | |
| foto_url: z.string().optional().nullable(), | |
| aktif: booleanOrNumber.optional(), | |
| }), | |
| }); | |