Merged in feat/sw-697-pet-room-fee-on-card (pull request #827)

feat(SW-697): Update package structure on price from API

Approved-by: Linus Flood
Approved-by: Niclas Edenvin
This commit is contained in:
Pontus Dreij
2024-11-04 15:42:06 +00:00
14 changed files with 211 additions and 57 deletions

View File

@@ -1,14 +1,17 @@
import { z } from "zod"
import {
priceSchema,
Product,
productTypePriceSchema,
RoomConfiguration,
} from "@/server/routers/hotels/output"
import { RoomPackage } from "./roomFilter"
import { Rate } from "./selectRate"
type ProductPrice = z.output<typeof productTypePriceSchema>
export type RoomPriceSchema = z.output<typeof priceSchema>
export type FlexibilityOptionProps = {
product: Product | undefined
@@ -19,10 +22,12 @@ export type FlexibilityOptionProps = {
roomType: RoomConfiguration["roomType"]
roomTypeCode: RoomConfiguration["roomTypeCode"]
features: RoomConfiguration["features"]
petRoomPackage: RoomPackage | undefined
handleSelectRate: (rate: Rate) => void
}
export interface PriceListProps {
publicPrice?: ProductPrice | Record<string, never>
memberPrice?: ProductPrice | Record<string, never>
petRoomPackage?: RoomPackage | undefined
}

View File

@@ -1,17 +1,34 @@
import { z } from "zod"
import {
RateDefinition,
RoomConfiguration,
} from "@/server/routers/hotels/output"
import { packagePriceSchema } from "@/server/routers/hotels/schemas/packages"
import { RoomPriceSchema } from "./flexibilityOption"
import { Rate } from "./selectRate"
import type { RoomData } from "@/types/hotel"
import type { RoomPackageCodes } from "./roomFilter"
import type { RoomPackageCodes, RoomPackageData } from "./roomFilter"
export type RoomCardProps = {
roomConfiguration: RoomConfiguration
rateDefinitions: RateDefinition[]
roomCategories: RoomData[]
selectedPackages: RoomPackageCodes[]
packages: RoomPackageData
handleSelectRate: (rate: Rate) => void
}
type RoomPackagePriceSchema = z.output<typeof packagePriceSchema>
export type CalculatePricesPerNightProps = {
publicLocalPrice: RoomPriceSchema
memberLocalPrice: RoomPriceSchema
publicRequestedPrice?: RoomPriceSchema
memberRequestedPrice?: RoomPriceSchema
petRoomLocalPrice?: RoomPackagePriceSchema
petRoomRequestedPrice?: RoomPackagePriceSchema
nights: number
}

View File

@@ -1,6 +1,9 @@
import { z } from "zod"
import { getRoomPackagesSchema } from "@/server/routers/hotels/schemas/packages"
import {
getRoomPackagesSchema,
packagesSchema,
} from "@/server/routers/hotels/schemas/packages"
export enum RoomPackageCodeEnum {
PET_ROOM = "PETR",
@@ -17,3 +20,5 @@ export interface RoomPackageData
extends z.output<typeof getRoomPackagesSchema> {}
export type RoomPackageCodes = RoomPackageData[number]["code"]
export type RoomPackage = z.output<typeof packagesSchema>