Files
web/server/routers/hotels/schemas/packages.ts

56 lines
1.3 KiB
TypeScript

import { z } from "zod"
import { RoomPackageCodeEnum } from "@/types/components/hotelReservation/selectRate/roomFilter"
export const getRoomPackagesInputSchema = z.object({
hotelId: z.string(),
startDate: z.string(),
endDate: z.string(),
adults: z.number(),
children: z.number().optional().default(0),
packageCodes: z.array(z.string()).optional().default([]),
})
const packagesSchema = z.array(
z.object({
code: z.enum([
RoomPackageCodeEnum.PETR,
RoomPackageCodeEnum.ALLG,
RoomPackageCodeEnum.ACCE,
]),
itemCode: z.string(),
description: z.string(),
currency: z.string(),
calculatedPrice: z.number(),
inventories: z.array(
z.object({
date: z.string(),
total: z.number(),
available: z.number(),
})
),
})
)
export const getRoomPackagesSchema = z
.object({
data: z.object({
attributes: z.object({
hotelId: z.number(),
packages: packagesSchema,
}),
relationships: z
.object({
links: z.array(
z.object({
url: z.string(),
type: z.string(),
})
),
})
.optional(),
type: z.string(),
}),
})
.transform((data) => data.data.attributes.packages)