feat: prevent users from selecting the same room when there is no vacancy for it

This commit is contained in:
Simon Emanuelsson
2025-05-16 10:39:30 +02:00
committed by Michael Zetterberg
parent 4f0c61f68f
commit 1f1bcd480b
6 changed files with 93 additions and 22 deletions

View File

@@ -2,6 +2,7 @@ import { z } from "zod"
import { toLang } from "@/server/utils"
import { sortRoomConfigs } from "@/utils/sort"
import { nullableStringValidator } from "@/utils/zod/stringValidator"
import { occupancySchema } from "./schemas/availability/occupancy"
@@ -26,7 +27,6 @@ import {
import { relationshipsSchema } from "./schemas/relationships"
import { roomConfigurationSchema } from "./schemas/roomAvailability/configuration"
import { rateDefinitionSchema } from "./schemas/roomAvailability/rateDefinition"
import { sortRoomConfigs } from "./utils"
import { AvailabilityEnum } from "@/types/components/hotelReservation/selectHotel/selectHotel"
import { RoomPackageCodeEnum } from "@/types/components/hotelReservation/selectRate/roomFilter"

View File

@@ -12,6 +12,7 @@ import { toApiLang } from "@/server/utils"
import { generateChildrenString } from "@/components/HotelReservation/utils"
import { getCacheClient } from "@/services/dataCache"
import { cache } from "@/utils/cache"
import { sortRoomConfigs } from "@/utils/sort"
import { getHotelPageUrls } from "../contentstack/hotelPage/utils"
import { type RoomFeaturesInput } from "./input"
@@ -1215,18 +1216,6 @@ export function getSelectedRoomAvailability(
}
}
// Used to ensure `Available` rooms
// are shown before all `NotAvailable`
const statusLookup = {
[AvailabilityEnum.Available]: 1,
[AvailabilityEnum.NotAvailable]: 2,
}
export function sortRoomConfigs(a: RoomConfiguration, b: RoomConfiguration) {
// @ts-expect-error - array indexing
return statusLookup[a.status] - statusLookup[b.status]
}
export function getBedTypes(
rooms: RoomConfiguration[],
roomType: string,