fix: add bookingCode to product

This commit is contained in:
Simon Emanuelsson
2025-03-31 13:52:53 +02:00
parent b48053b8b4
commit 9d584887ad
4 changed files with 159 additions and 227 deletions

View File

@@ -8,63 +8,51 @@ import {
voucherProduct,
} from "./product"
import {
AvailabilityEnum,
} from "@/types/components/hotelReservation/selectHotel/selectHotel"
import {
RoomPackageCodeEnum,
} from "@/types/components/hotelReservation/selectRate/roomFilter"
import { AvailabilityEnum } from "@/types/components/hotelReservation/selectHotel/selectHotel"
import { RoomPackageCodeEnum } from "@/types/components/hotelReservation/selectRate/roomFilter"
export const roomConfigurationSchema = z
.object({
breakfastIncludedInAllRatesMember: z.boolean().default(false),
breakfastIncludedInAllRates: z.boolean().default(false),
features: z
.array(
z.object({
inventory: z.number(),
code: z.enum([
RoomPackageCodeEnum.PET_ROOM,
RoomPackageCodeEnum.ALLERGY_ROOM,
RoomPackageCodeEnum.ACCESSIBILITY_ROOM,
]),
})
)
.default([]),
products: z.array(productSchema).default([]),
roomsLeft: z.number(),
roomType: z.string(),
roomTypeCode: z.string(),
status: z
.nativeEnum(AvailabilityEnum)
.nullish()
.default(AvailabilityEnum.NotAvailable),
export const roomConfigurationSchema = z.object({
breakfastIncludedInAllRatesMember: z.boolean().default(false),
breakfastIncludedInAllRates: z.boolean().default(false),
features: z
.array(
z.object({
inventory: z.number(),
code: z.enum([
RoomPackageCodeEnum.PET_ROOM,
RoomPackageCodeEnum.ALLERGY_ROOM,
RoomPackageCodeEnum.ACCESSIBILITY_ROOM,
]),
})
)
.default([]),
products: z.array(productSchema).default([]),
roomsLeft: z.number(),
roomType: z.string(),
roomTypeCode: z.string(),
status: z
.nativeEnum(AvailabilityEnum)
.nullish()
.default(AvailabilityEnum.NotAvailable),
// Red
campaign: z
.array(priceProduct)
.nullish()
.transform(val => val ? val.filter(Boolean) : []),
// Blue
code: z
.array(
z
.union([
corporateChequeProduct,
priceProduct,
voucherProduct,
])
)
.nullish()
.transform(val => val ? val.filter(Boolean) : []),
// Beige
regular: z
.array(priceProduct)
.nullish()
.transform(val => val ? val.filter(Boolean) : []),
// Burgundy
redemptions: z
.array(redemptionProduct)
.nullish()
.transform(val => val ? val.filter(Boolean) : []),
})
// Red
campaign: z
.array(priceProduct)
.optional()
.transform((val) => (val ? val.filter(Boolean) : [])),
// Blue
code: z
.array(z.union([corporateChequeProduct, priceProduct, voucherProduct]))
.optional()
.transform((val) => (val ? val.filter(Boolean) : [])),
// Beige
regular: z
.array(priceProduct)
.optional()
.transform((val) => (val ? val.filter(Boolean) : [])),
// Burgundy
redemptions: z
.array(redemptionProduct)
.optional()
.transform((val) => (val ? val.filter(Boolean) : [])),
})