From b881e025f6d0dfc446ae1b9ce2e1070cee072928 Mon Sep 17 00:00:00 2001 From: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Date: Mon, 13 Oct 2025 14:49:59 +0530 Subject: [PATCH] fix: Standardize email field editable to system-but-optional (#24416) Change email booking field's editable property from 'system' to 'system-but-optional' across all code paths. This allows email field to be optional when phone field is required instead. - Updated systemBeforeFieldEmail in API v2024_06_14 transformers - Fixed explicit override in API v2024_04_15 service - Updated test utility to match production behavior - Ensures consistency with validation logic that requires either email OR phone to be visible and required Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../event-types_2024_04_15/services/event-types.service.ts | 6 +++++- .../transformers/internal-to-api/booking-fields.ts | 2 +- apps/web/test/utils/bookingScenario/bookingScenario.ts | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts b/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts index 7a08114549..d7cc75cd79 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts @@ -137,7 +137,11 @@ export class EventTypesService_2024_04_15 { !bookingFields.find((field) => field.type === "email") && !bookingFields.find((field) => field.type === "phone") ) { - bookingFields.push({ ...systemBeforeFieldEmail, type: BaseField.email, editable: Editable.system }); + bookingFields.push({ + ...systemBeforeFieldEmail, + type: BaseField.email, + editable: Editable.systemButOptional, + }); } await updateEventType({ diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/booking-fields.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/booking-fields.ts index 73ab5e9009..c83bcc4a3a 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/booking-fields.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/booking-fields.ts @@ -556,7 +556,7 @@ export const systemBeforeFieldEmail: EmailSystemField = { type: "email", name: "email", required: true, - editable: "system", + editable: "system-but-optional", sources: [ { label: "Default", diff --git a/apps/web/test/utils/bookingScenario/bookingScenario.ts b/apps/web/test/utils/bookingScenario/bookingScenario.ts index 06e33ce6f8..4c07a7112a 100644 --- a/apps/web/test/utils/bookingScenario/bookingScenario.ts +++ b/apps/web/test/utils/bookingScenario/bookingScenario.ts @@ -2397,7 +2397,7 @@ export const getDefaultBookingFields = ({ label: "", hidden: false, sources: [{ id: "default", type: "default", label: "Default" }], - editable: "system", + editable: "system-but-optional", required: true, placeholder: "", defaultLabel: "email_address",