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:
@@ -37,7 +37,7 @@ export const rooms = safeProtectedServiceProcedure
|
|||||||
.query(async function ({ ctx, input }) {
|
.query(async function ({ ctx, input }) {
|
||||||
input.booking.rooms = input.booking.rooms.map((room) => ({
|
input.booking.rooms = input.booking.rooms.map((room) => ({
|
||||||
...room,
|
...room,
|
||||||
bookingCode: room.bookingCode || input.booking.bookingCode,
|
bookingCode: input.booking.bookingCode,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
const availability = await getRoomsAvailability(
|
const availability = await getRoomsAvailability(
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { z } from "zod"
|
|||||||
|
|
||||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||||
|
|
||||||
import { baseBookingSchema, baseRoomSchema } from "../../../input"
|
import { baseBookingSchema, selectRoomSchema } from "../../../input"
|
||||||
|
|
||||||
export type RoomsAvailabilityInputRoom =
|
export type RoomsAvailabilityInputRoom =
|
||||||
RoomsAvailabilityInputSchema["booking"]["rooms"][number]
|
RoomsAvailabilityInputSchema["booking"]["rooms"][number]
|
||||||
@@ -16,7 +16,7 @@ export type RoomsAvailabilityInputSchema = z.input<
|
|||||||
export const selectRateRoomsAvailabilityInputSchema = z
|
export const selectRateRoomsAvailabilityInputSchema = z
|
||||||
.object({
|
.object({
|
||||||
booking: baseBookingSchema.extend({
|
booking: baseBookingSchema.extend({
|
||||||
rooms: z.array(baseRoomSchema),
|
rooms: z.array(selectRoomSchema),
|
||||||
}),
|
}),
|
||||||
lang: z.nativeEnum(Lang),
|
lang: z.nativeEnum(Lang),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -16,13 +16,19 @@ const childrenInRoomSchema = z
|
|||||||
)
|
)
|
||||||
.optional()
|
.optional()
|
||||||
|
|
||||||
export const baseRoomSchema = z.object({
|
const sharedRoomFields = {
|
||||||
adults: z.number().int().min(1),
|
adults: z.number().int().min(1),
|
||||||
bookingCode: z.string().optional(),
|
|
||||||
childrenInRoom: childrenInRoomSchema,
|
childrenInRoom: childrenInRoomSchema,
|
||||||
packages: z
|
packages: z
|
||||||
.array(z.nativeEnum({ ...BreakfastPackageEnum, ...RoomPackageCodeEnum }))
|
.array(z.nativeEnum({ ...BreakfastPackageEnum, ...RoomPackageCodeEnum }))
|
||||||
.optional(),
|
.optional(),
|
||||||
|
}
|
||||||
|
|
||||||
|
export const selectRoomSchema = z.object(sharedRoomFields)
|
||||||
|
|
||||||
|
export const baseRoomSchema = z.object({
|
||||||
|
...sharedRoomFields,
|
||||||
|
bookingCode: z.string().optional(),
|
||||||
})
|
})
|
||||||
|
|
||||||
export const selectedRoomSchema = z.object({
|
export const selectedRoomSchema = z.object({
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ export async function getRoomsAvailability(
|
|||||||
...(room.childrenInRoom?.length && {
|
...(room.childrenInRoom?.length && {
|
||||||
children: generateChildrenString(room.childrenInRoom),
|
children: generateChildrenString(room.childrenInRoom),
|
||||||
}),
|
}),
|
||||||
...(room.bookingCode && { bookingCode: room.bookingCode }),
|
...(bookingCode && { bookingCode: bookingCode }),
|
||||||
...(redemption && { isRedemption: "true" }),
|
...(redemption && { isRedemption: "true" }),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user