From c1657ac37bae4791dd6e4a6908c6735f2de56eb1 Mon Sep 17 00:00:00 2001 From: richardtekula Date: Fri, 16 Jan 2026 10:07:46 +0100 Subject: [PATCH] fix: Allow empty string for phone in contact validation The Zod schema was rejecting empty strings sent from the frontend. Changed from z.string().optional().nullable() to z.union pattern to properly handle "", null, and undefined values. Co-Authored-By: Claude Opus 4.5 --- src/routes/personal-contact.routes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/personal-contact.routes.js b/src/routes/personal-contact.routes.js index 43cc1f0..539fe47 100644 --- a/src/routes/personal-contact.routes.js +++ b/src/routes/personal-contact.routes.js @@ -9,7 +9,7 @@ const router = express.Router() const createContactSchema = z.object({ firstName: z.string().min(1, 'Meno je povinné'), lastName: z.string().optional(), - phone: z.string().optional().nullable(), + phone: z.union([z.string(), z.literal(''), z.null()]).optional(), email: z.string().email('Neplatný email'), secondaryEmail: z.union([z.string().email('Neplatný email'), z.literal('')]).optional(), companyId: z.union([z.string().uuid(), z.literal(''), z.null()]).optional(),