fix: all item/sub-object schemas accept string numbers from form inputs

Fixed offers, orders, attendance, scope-templates schemas — quantity,
unit_price, position, hours, minutes now use z.union([z.number(), z.string()])
with transform instead of bare z.number().

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-03-23 18:42:41 +01:00
parent a8a28d8472
commit aeac76687b
4 changed files with 11 additions and 11 deletions

View File

@@ -3,18 +3,18 @@ import { z } from 'zod';
const QuotationItemSchema = z.object({
description: z.string().nullish(),
item_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),
unit_price: z.union([z.number(), z.string()]).transform(v => Number(v) || 0).optional().default(0),
is_included_in_total: z.any().optional().default(true),
position: z.number().optional(),
position: z.union([z.number(), z.string()]).transform(v => Number(v)).optional(),
});
const ScopeSectionSchema = z.object({
title: z.string().nullish(),
title_cz: z.string().nullish(),
content: z.string().nullish(),
position: z.number().optional(),
position: z.union([z.number(), z.string()]).transform(v => Number(v)).optional(),
});
export const CreateQuotationSchema = z.object({