fix: invoice item schema accepts string numbers from form inputs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-03-23 11:01:34 +01:00
parent d3a72c51a2
commit 0ad88aa5ce

View File

@@ -2,11 +2,11 @@ import { z } from 'zod';
const InvoiceItemSchema = z.object({ const InvoiceItemSchema = z.object({
description: z.string().nullish(), description: z.string().nullish(),
quantity: z.number().optional().default(1), quantity: z.union([z.number(), z.string()]).transform(v => Number(v) || 1).optional().default(1),
unit: z.string().nullish(), unit: z.string().nullish(),
unit_price: z.number().optional().default(0), unit_price: z.union([z.number(), z.string()]).transform(v => Number(v) || 0).optional().default(0),
vat_rate: z.number().optional().default(21.0), vat_rate: z.union([z.number(), z.string()]).transform(v => Number(v)).optional().default(21.0),
position: z.number().optional(), position: z.union([z.number(), z.string()]).transform(v => Number(v)).optional(),
}); });
export const CreateInvoiceSchema = z.object({ export const CreateInvoiceSchema = z.object({