fix(SW-194): add refs for hotel pages

This commit is contained in:
Matilda Landström
2024-10-09 16:33:14 +02:00
parent 99d537d40c
commit e234225c4b
8 changed files with 307 additions and 14 deletions

View File

@@ -2,8 +2,12 @@ import { z } from "zod"
import { discriminatedUnionArray } from "@/lib/discriminatedUnion"
import { activitiesCardSchema } from "../schemas/blocks/activitiesCard"
import { accordionSchema } from "../schemas/blocks/faq"
import {
activitiesCardRefSchema,
activitiesCardSchema,
} from "../schemas/blocks/activitiesCard"
import { accordionRefsSchema,accordionSchema } from "../schemas/blocks/faq"
import { systemSchema } from "../schemas/system"
import { HotelPageEnum } from "@/types/enums/hotelPage"
@@ -24,5 +28,30 @@ export const hotelPageSchema = z.object({
hotel_page_id: z.string(),
title: z.string(),
url: z.string(),
system: systemSchema.merge(
z.object({
created_at: z.string(),
updated_at: z.string(),
})
),
}),
})
/** REFS */
const hotelPageActiviesCardRefs = z
.object({
__typename: z.literal(HotelPageEnum.ContentStack.blocks.ActivitiesCard),
})
.merge(activitiesCardRefSchema)
const hotelPageBlockRefsItem = z.discriminatedUnion("__typename", [
hotelPageActiviesCardRefs,
])
export const hotelPageRefsSchema = z.object({
hotel_page: z.object({
content: discriminatedUnionArray(hotelPageBlockRefsItem.options).nullable(),
faq: accordionRefsSchema.nullable(),
system: systemSchema,
}),
})