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), }), });