From 0ad88aa5ce3896c775c7346b7247c64582795c2a Mon Sep 17 00:00:00 2001 From: BOHA Date: Mon, 23 Mar 2026 11:01:34 +0100 Subject: [PATCH] fix: invoice item schema accepts string numbers from form inputs Co-Authored-By: Claude Opus 4.6 (1M context) --- src/schemas/invoices.schema.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/schemas/invoices.schema.ts b/src/schemas/invoices.schema.ts index f3be3e2..6c04df3 100644 --- a/src/schemas/invoices.schema.ts +++ b/src/schemas/invoices.schema.ts @@ -2,11 +2,11 @@ import { z } from 'zod'; const InvoiceItemSchema = z.object({ 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_price: z.number().optional().default(0), - vat_rate: z.number().optional().default(21.0), - position: z.number().optional(), + unit_price: z.union([z.number(), z.string()]).transform(v => Number(v) || 0).optional().default(0), + vat_rate: z.union([z.number(), z.string()]).transform(v => Number(v)).optional().default(21.0), + position: z.union([z.number(), z.string()]).transform(v => Number(v)).optional(), }); export const CreateInvoiceSchema = z.object({