Files
web/server/routers/contentstack/hotelPage/output.ts
Linus Flood 54f094af86 Tracking WIP
2024-09-27 08:46:12 +02:00

30 lines
774 B
TypeScript

import { z } from "zod"
import { discriminatedUnionArray } from "@/lib/discriminatedUnion"
import { activitiesCard } from "../schemas/blocks/activitiesCard"
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(),
hotel_page_id: z.string(),
title: z.string(),
url: z.string(),
page_settings: z.object({
tracking_page_name: z.string().nullable(),
}),
}),
})