feat(SW-176): add schemas

This commit is contained in:
Fredrik Thorsson
2024-08-22 15:03:41 +02:00
parent 31b239c577
commit deb3151edc
5 changed files with 79 additions and 1 deletions

View File

@@ -6,6 +6,17 @@ export const getHotelInputSchema = z.object({
.optional(),
})
export const getAvailabilityInputSchema = z.object({
cityId: z.string(),
roomStayStartDate: z.string(),
roomStayEndDate: z.string(),
adults: z.number(),
children: z.number().optional(),
promotionCode: z.string().optional(),
reservationProfileType: z.string().optional(),
attachedProfileId: z.string().optional(),
})
export const getRatesInputSchema = z.object({
hotelId: z.string(),
})

View File

@@ -468,6 +468,64 @@ export const getHotelDataSchema = z.object({
included: z.array(roomSchema).optional(),
})
const occupancySchema = z.object({
adults: z.number(),
children: z.number(),
})
const bestPricePerStaySchema = z.object({
currency: z.string(),
amount: z.number(),
regularAmount: z.number(),
memberAmount: z.number(),
discountRate: z.number(),
discountAmount: z.number(),
points: z.number(),
numberOfVouchers: z.number(),
numberOfBonusCheques: z.number(),
})
const bestPricePerNightSchema = z.object({
currency: z.string(),
amount: z.number(),
regularAmount: z.number(),
memberAmount: z.number(),
discountRate: z.number(),
discountAmount: z.number(),
points: z.number(),
numberOfVouchers: z.number(),
numberOfBonusCheques: z.number(),
})
const linksSchema = z.object({
links: z.array(
z.object({
url: z.string(),
type: z.string(),
})
),
})
const availabilitySchema = z.object({
data: z.array(
z.object({
attributes: z.object({
checkInDate: z.date(),
checkOutDate: z.date(),
occupancy: occupancySchema,
status: z.string(),
hotelId: z.number(),
ratePlanSet: z.string(),
bestPricePerStay: bestPricePerStaySchema,
bestPricePerNight: bestPricePerNightSchema,
}),
relationships: linksSchema,
})
),
})
export const getAvailabilitySchema = availabilitySchema
const flexibilityPrice = z.object({
standard: z.number(),
member: z.number(),

View File

@@ -21,11 +21,13 @@ import {
validateHotelPageSchema,
} from "../contentstack/hotelPage/output"
import {
getAvailabilityInputSchema,
getFiltersInputSchema,
getHotelInputSchema,
getRatesInputSchema,
} from "./input"
import {
getAvailabilitySchema,
getFiltersSchema,
getHotelDataSchema,
getRatesSchema,