diff --git a/packages/trpc/lib/routers/hotels/availability/selectRate/rooms/index.ts b/packages/trpc/lib/routers/hotels/availability/selectRate/rooms/index.ts index fc0dc7c14..5fd8a9646 100644 --- a/packages/trpc/lib/routers/hotels/availability/selectRate/rooms/index.ts +++ b/packages/trpc/lib/routers/hotels/availability/selectRate/rooms/index.ts @@ -37,7 +37,7 @@ export const rooms = safeProtectedServiceProcedure .query(async function ({ ctx, input }) { input.booking.rooms = input.booking.rooms.map((room) => ({ ...room, - bookingCode: room.bookingCode || input.booking.bookingCode, + bookingCode: input.booking.bookingCode, })) const availability = await getRoomsAvailability( diff --git a/packages/trpc/lib/routers/hotels/availability/selectRate/rooms/schema.ts b/packages/trpc/lib/routers/hotels/availability/selectRate/rooms/schema.ts index d927a2632..fb8815ae2 100644 --- a/packages/trpc/lib/routers/hotels/availability/selectRate/rooms/schema.ts +++ b/packages/trpc/lib/routers/hotels/availability/selectRate/rooms/schema.ts @@ -3,7 +3,7 @@ import { z } from "zod" import { Lang } from "@scandic-hotels/common/constants/language" -import { baseBookingSchema, baseRoomSchema } from "../../../input" +import { baseBookingSchema, selectRoomSchema } from "../../../input" export type RoomsAvailabilityInputRoom = RoomsAvailabilityInputSchema["booking"]["rooms"][number] @@ -16,7 +16,7 @@ export type RoomsAvailabilityInputSchema = z.input< export const selectRateRoomsAvailabilityInputSchema = z .object({ booking: baseBookingSchema.extend({ - rooms: z.array(baseRoomSchema), + rooms: z.array(selectRoomSchema), }), lang: z.nativeEnum(Lang), }) diff --git a/packages/trpc/lib/routers/hotels/input.ts b/packages/trpc/lib/routers/hotels/input.ts index 2eb11f781..2434191ac 100644 --- a/packages/trpc/lib/routers/hotels/input.ts +++ b/packages/trpc/lib/routers/hotels/input.ts @@ -16,13 +16,19 @@ const childrenInRoomSchema = z ) .optional() -export const baseRoomSchema = z.object({ +const sharedRoomFields = { adults: z.number().int().min(1), - bookingCode: z.string().optional(), childrenInRoom: childrenInRoomSchema, packages: z .array(z.nativeEnum({ ...BreakfastPackageEnum, ...RoomPackageCodeEnum })) .optional(), +} + +export const selectRoomSchema = z.object(sharedRoomFields) + +export const baseRoomSchema = z.object({ + ...sharedRoomFields, + bookingCode: z.string().optional(), }) export const selectedRoomSchema = z.object({ diff --git a/packages/trpc/lib/routers/hotels/services/getRoomsAvailability.ts b/packages/trpc/lib/routers/hotels/services/getRoomsAvailability.ts index e7018adeb..c39bec43b 100644 --- a/packages/trpc/lib/routers/hotels/services/getRoomsAvailability.ts +++ b/packages/trpc/lib/routers/hotels/services/getRoomsAvailability.ts @@ -69,7 +69,7 @@ export async function getRoomsAvailability( ...(room.childrenInRoom?.length && { children: generateChildrenString(room.childrenInRoom), }), - ...(room.bookingCode && { bookingCode: room.bookingCode }), + ...(bookingCode && { bookingCode: bookingCode }), ...(redemption && { isRedemption: "true" }), }