From 49d2a136723ada21628969c2b143f90f0d2f6a58 Mon Sep 17 00:00:00 2001 From: Jose Selesan Date: Mon, 8 Jun 2026 15:34:53 -0300 Subject: [PATCH] feat(booking): allow empty customer email in booking forms and schemas --- .../modules/admin-booking/services/admin-booking.service.ts | 2 +- .../src/features/booking/components/booking-create-dialog.tsx | 2 +- packages/api-contract/src/admin-booking.ts | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/backend/src/modules/admin-booking/services/admin-booking.service.ts b/apps/backend/src/modules/admin-booking/services/admin-booking.service.ts index 2310d13..95eb35b 100644 --- a/apps/backend/src/modules/admin-booking/services/admin-booking.service.ts +++ b/apps/backend/src/modules/admin-booking/services/admin-booking.service.ts @@ -424,7 +424,7 @@ export async function createAdminBooking( endTime: selectedSlot.endTime, customerName: input.customerName.trim(), customerPhone: input.customerPhone.trim(), - customerEmail: input.customerEmail.trim(), + customerEmail: input.customerEmail?.trim() ?? '', status: 'CONFIRMED', }, include: { diff --git a/apps/frontend/src/features/booking/components/booking-create-dialog.tsx b/apps/frontend/src/features/booking/components/booking-create-dialog.tsx index 591dd00..e1ce1b8 100644 --- a/apps/frontend/src/features/booking/components/booking-create-dialog.tsx +++ b/apps/frontend/src/features/booking/components/booking-create-dialog.tsx @@ -42,7 +42,7 @@ const bookingFormSchema = z.object({ .trim() .min(6, 'Ingresa un telefono válido.') .max(30, 'El telefono no puede superar los 30 caracteres.'), - customerEmail: z.string().email('Ingresá un email válido.'), + customerEmail: z.string().email('Ingresá un email válido.').or(z.literal('')), }); type BookingForm = z.infer; diff --git a/packages/api-contract/src/admin-booking.ts b/packages/api-contract/src/admin-booking.ts index 08c9384..d291e79 100644 --- a/packages/api-contract/src/admin-booking.ts +++ b/packages/api-contract/src/admin-booking.ts @@ -56,7 +56,8 @@ export const createAdminBookingSchema = z.object({ .max(30, 'El telefono no puede superar los 30 caracteres.'), customerEmail: z .string() - .email('El email ingresado no es valido.'), + .email('El email ingresado no es valido.') + .or(z.literal('')), }) export const updateAdminBookingStatusSchema = z.object({