Files
web/server/routers/contentstack/hotelPage/output.ts
2024-10-16 13:55:05 +02:00

29 lines
769 B
TypeScript

import { z } from "zod"
import { discriminatedUnionArray } from "@/lib/discriminatedUnion"
import { activitiesCard } from "../schemas/blocks/activitiesCard"
import { accordionSchema } from "../schemas/blocks/faq"
import { HotelPageEnum } from "@/types/enums/hotelPage"
const contentBlockActivities = z
.object({
__typename: z.literal(HotelPageEnum.ContentStack.blocks.ActivitiesCard),
})
.merge(activitiesCard)
export const contentBlock = z.discriminatedUnion("__typename", [
contentBlockActivities,
])
export const hotelPageSchema = z.object({
hotel_page: z.object({
content: discriminatedUnionArray(contentBlock.options).nullable(),
faq: accordionSchema,
hotel_page_id: z.string(),
title: z.string(),
url: z.string(),
}),
})