feat(SW-3688): remove nearbyHotels prop/fetch from hotelscheme * feat(SW-3688): remove nearbyHotels prop/fetch from hotelscheme * Cleanup Approved-by: Joakim Jäderberg
42 lines
930 B
TypeScript
42 lines
930 B
TypeScript
import { z } from "zod"
|
|
|
|
import { citySchema } from "../city"
|
|
import {
|
|
additionalDataSchema,
|
|
transformAdditionalData,
|
|
} from "./include/additionalData"
|
|
import { restaurantsSchema } from "./include/restaurants"
|
|
import {
|
|
roomCategoriesSchema,
|
|
transformRoomCategories,
|
|
} from "./include/roomCategories"
|
|
|
|
export const includeSchema = z
|
|
.union([
|
|
z.null(),
|
|
z.undefined(),
|
|
z.discriminatedUnion("type", [
|
|
additionalDataSchema,
|
|
citySchema,
|
|
restaurantsSchema,
|
|
roomCategoriesSchema,
|
|
]),
|
|
])
|
|
.transform((data) => {
|
|
switch (data?.type) {
|
|
case "additionalData":
|
|
return transformAdditionalData(data)
|
|
case "cities":
|
|
case "restaurants":
|
|
return {
|
|
...data.attributes,
|
|
id: data.id,
|
|
type: data.type,
|
|
}
|
|
case "roomcategories":
|
|
return transformRoomCategories(data)
|
|
default:
|
|
return null
|
|
}
|
|
})
|