import { z } from "zod" import { imageSchema } from "./image" const specialNeedSchema = z.object({ name: z.string(), details: z.string(), }) const specialNeedGroupSchema = z.object({ name: z.string(), specialNeeds: z.array(specialNeedSchema), }) export const gallerySchema = z.object({ heroImages: z.array(imageSchema), smallerImages: z.array(imageSchema), }) export const facilitySchema = z.object({ headingText: z.string().default(""), heroImages: z.array(imageSchema), }) export const restaurantsOverviewPageSchema = z.object({ restaurantsOverviewPageLinkText: z.string().optional(), restaurantsOverviewPageLink: z.string().optional(), restaurantsContentDescriptionShort: z.string().optional(), restaurantsContentDescriptionMedium: z.string().optional(), }) export const extraPageSchema = z.object({ elevatorPitch: z.string().default(""), mainBody: z.string().optional(), nameInUrl: z.string().optional(), }) export const accessibilitySchema = z.object({ headingText: z.string().default(""), heroImages: z.array(imageSchema), }) export const additionalDataSchema = z.object({ attributes: z.object({ name: z.string(), id: z.string(), displayWebPage: z.object({ healthGym: z.boolean(), meetingRoom: z.boolean(), parking: z.boolean(), specialNeeds: z.boolean(), }), specialNeedGroups: z.array(specialNeedGroupSchema), gallery: gallerySchema.optional(), conferencesAndMeetings: facilitySchema.optional(), healthAndWellness: facilitySchema.optional(), restaurantImages: facilitySchema.optional(), parkingImages: facilitySchema.optional(), restaurantsOverviewPage: restaurantsOverviewPageSchema, meetingRooms: extraPageSchema, healthAndFitness: extraPageSchema, hotelParking: extraPageSchema, hotelSpecialNeeds: extraPageSchema, hotelRoomElevatorPitchText: z.string().optional(), accessibility: accessibilitySchema.optional(), }), type: z.literal("additionalData"), }) export function transformAdditionalData( data: z.output ) { return { ...data.attributes, id: data.attributes.id, type: data.type, } }