Spaces:
Sleeping
Sleeping
| import { z } from 'zod'; | |
| export const createTransaksiSchema = z.object({ | |
| body: z.object({ | |
| member_id: z.number().optional().nullable(), | |
| local_id: z.string().optional().nullable(), | |
| catatan: z.string().optional().nullable(), | |
| items: z.array(z.object({ | |
| produk_id: z.number({ required_error: 'produk_id item wajib diisi' }), | |
| qty: z.number({ required_error: 'qty item wajib diisi' }).positive(), | |
| })).min(1, 'Transaksi minimal harus memiliki 1 item'), | |
| pembayaran: z.array(z.object({ | |
| metode: z.enum(['tunai', 'qris', 'transfer', 'bon', 'voucher'], { required_error: 'metode pembayaran wajib diisi' }), | |
| nominal: z.number({ required_error: 'nominal pembayaran wajib diisi' }).nonnegative(), | |
| referensi: z.string().optional().nullable(), | |
| })).min(1, 'Transaksi minimal harus memiliki 1 metode pembayaran'), | |
| }), | |
| }); | |
| export const createTransaksiReturSchema = z.object({ | |
| body: z.object({ | |
| transaksi_id: z.number({ required_error: 'transaksi_id wajib diisi' }), | |
| produk_id: z.number({ required_error: 'produk_id wajib diisi' }), | |
| qty: z.number({ required_error: 'Kuantitas retur (qty) wajib diisi' }).positive(), | |
| alasan: z.string({ required_error: 'Alasan retur wajib diisi' }).min(1), | |
| tipe: z.enum(['refund', 'exchange'], { required_error: 'Tipe retur wajib diisi (refund/exchange)' }), | |
| nominal_kembali: z.number().optional().default(0), | |
| stok_kembali: z.number().optional().default(1), | |
| }), | |
| }); | |