Merged in feat/SW-1169-map-bedtype-icons (pull request #1113)

Feat/SW-1169 map bedtype icons

* feat(SW-1169): Added bed icons

* fix(SW-1169): update fill rule property

* fix(SW-1169): update clip rule prop

* feat(SW-1169): Added way of rendering bed type icons with extra beds

* feat(SW-1169): update room schema to map mainBed to enum

* feat(SW-1169): update bedtype icon color

* feat(SW-1169): transform unknown bed types to BedTypeEnum.Other

* test: update mock data with new schema


Approved-by: Christel Westerberg
This commit is contained in:
Tobias Johansson
2025-01-08 13:26:56 +00:00
parent 6fabfe2367
commit 1018b3ebcd
22 changed files with 454 additions and 50 deletions

View File

@@ -612,6 +612,13 @@ export const hotelQueryRouter = router({
description: matchingRoom.description,
size: matchingRoom.mainBed.widthRange,
value: matchingRoom.code,
type: matchingRoom.mainBed.type,
extraBed: matchingRoom.fixedExtraBed
? {
type: matchingRoom.fixedExtraBed.type,
description: matchingRoom.fixedExtraBed.description,
}
: undefined,
}
}
})

View File

@@ -1,5 +1,7 @@
import { z } from "zod"
import { BedTypeEnum, ExtraBedTypeEnum } from "@/constants/booking"
import { imageSchema } from "./image"
const roomContentSchema = z.object({
@@ -17,22 +19,40 @@ const roomTypesSchema = z.object({
description: z.string(),
code: z.string(),
roomCount: z.number(),
mainBed: z.object({
type: z.string(),
description: z.string(),
widthRange: z.object({
min: z.number(),
max: z.number(),
mainBed: z
.object({
type: z.string(),
description: z.string(),
widthRange: z.object({
min: z.number(),
max: z.number(),
}),
})
.transform((data) => ({
type:
data.type in BedTypeEnum
? (data.type as BedTypeEnum)
: BedTypeEnum.Other,
description: data.description,
widthRange: data.widthRange,
})),
fixedExtraBed: z
.object({
type: z.string(),
description: z.string().optional(),
widthRange: z.object({
min: z.number(),
max: z.number(),
}),
})
.transform((data) => {
return data.type in ExtraBedTypeEnum
? {
type: data.type as ExtraBedTypeEnum,
description: data.description,
}
: undefined
}),
}),
fixedExtraBed: z.object({
type: z.string(),
description: z.string().optional(),
widthRange: z.object({
min: z.number(),
max: z.number(),
}),
}),
roomSize: z.object({
min: z.number(),
max: z.number(),