Merged in feat/SW-2033-implement-new-room-feature-request (pull request #1665)

feat(SW-2033): Added new route for fetching room features, and merged the data with existing availability data

* feat(SW-2033): Added new route for fetching room features, and merged the data with existing availability data

* fix: issue with total price not including room features

* fix: add return null

* fix

* fix

* fixes from PR feedback


Approved-by: Arvid Norlin
This commit is contained in:
Tobias Johansson
2025-03-31 11:20:49 +00:00
parent 81f579bbfe
commit 7434f30c20
9 changed files with 232 additions and 12 deletions

View File

@@ -25,6 +25,7 @@ import { roomConfigurationSchema } from "./schemas/roomAvailability/configuratio
import { rateDefinitionSchema } from "./schemas/roomAvailability/rateDefinition"
import { AvailabilityEnum } from "@/types/components/hotelReservation/selectHotel/selectHotel"
import { RoomPackageCodeEnum } from "@/types/components/hotelReservation/selectRate/roomFilter"
import { RateTypeEnum } from "@/types/enums/rateType"
import type {
AdditionalData,
@@ -616,3 +617,32 @@ export const getNearbyHotelIdsSchema = z
),
})
.transform((data) => data.data.map((hotel) => hotel.id))
export const roomFeaturesSchema = z
.object({
data: z.object({
attributes: z.object({
hotelId: z.number(),
roomFeatures: z
.array(
z.object({
roomTypeCode: z.string(),
features: z.array(
z.object({
inventory: z.number(),
code: z.enum([
RoomPackageCodeEnum.PET_ROOM,
RoomPackageCodeEnum.ALLERGY_ROOM,
RoomPackageCodeEnum.ACCESSIBILITY_ROOM,
]),
})
),
})
)
.default([]),
}),
}),
})
.transform((data) => {
return data.data.attributes.roomFeatures
})