Merged in BOOK-448-select-rate-reload-bookingcode (pull request #2974)

(BOOK-448): prevent refetching select rate availability when adding room bookingcode

* (BOOK-448): prevent refetching select rate availability when adding room bookingcode


Approved-by: Linus Flood
This commit is contained in:
Bianca Widstam
2025-10-16 06:16:35 +00:00
parent c6f76b83cc
commit 6c65951fa7
4 changed files with 12 additions and 6 deletions

View File

@@ -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(

View File

@@ -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),
})

View File

@@ -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({

View File

@@ -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" }),
}