import { bookerLayoutOptions, type BookerLayoutSettings } from "@calcom/prisma/zod-utils"; export const validateBookerLayouts = (settings: BookerLayoutSettings) => { // Allow layouts to be null, as per database defaults. if (settings === null) return; // At least one layout should be enabled. const atLeastOneLayoutIsEnabled = settings?.enabledLayouts.length > 0; if (!atLeastOneLayoutIsEnabled) return "bookerlayout_error_min_one_enabled"; // Default layout should also be enabled. const defaultLayoutIsInEnabledLayouts = settings?.enabledLayouts.find( (layout) => layout === settings.defaultLayout ); if (!defaultLayoutIsInEnabledLayouts) return "bookerlayout_error_default_not_enabled"; // Validates that users don't try to insert an unknown layout into DB. const enabledLayoutsDoesntContainUnknownLayout = settings?.enabledLayouts.every((layout) => bookerLayoutOptions.includes(layout) ); const defaultLayoutIsKnown = bookerLayoutOptions.includes(settings.defaultLayout); if (!enabledLayoutsDoesntContainUnknownLayout || !defaultLayoutIsKnown) { return "bookerlayout_error_unknown_layout"; } }; // export const getEnabledLayouts =