Merged in fix/allow-single-rateCode (pull request #1438)

fix: allow rates that only have either of member or public to be selectable

* fix: allow rates that only have either of member or public to be selectable


Approved-by: Michael Zetterberg
This commit is contained in:
Simon.Emanuelsson
2025-03-03 08:28:55 +00:00
committed by Linus Flood
parent 3f01266a75
commit c3e3fa62ec
30 changed files with 487 additions and 573 deletions

View File

@@ -27,6 +27,6 @@ export type JoinScandicFriendsCardProps = {
}
export type RoomRate = {
publicRate: Product["productType"]["public"]
memberRate?: Product["productType"]["member"]
memberRate?: Product["member"]
publicRate?: Product["public"]
}

View File

@@ -15,7 +15,6 @@ export type RoomPriceSchema = z.output<typeof priceSchema>
export type FlexibilityOptionProps = {
features: RoomConfiguration["features"]
isSelected: boolean
paymentTerm: string
petRoomPackage: RoomPackage | undefined
priceInformation?: Array<string>

View File

@@ -28,20 +28,36 @@ export interface SelectRateSearchParams {
toDate: string
}
export interface Rate {
export type Rate = {
features: RoomConfiguration["features"]
member?: Product["productType"]["member"]
package?: RoomPackageCodeEnum | undefined
priceName?: string
priceTerm?: string
public: Product["productType"]["public"]
rate: "change" | "flex" | "save"
roomRates?: {
rate: Rate
roomIndex: number
}[]
roomType: RoomConfiguration["roomType"]
roomTypeCode: RoomConfiguration["roomTypeCode"]
}
} & (
| {
member?: undefined
public?: undefined
}
| {
member?: never
public: NonNullable<Product["public"]>
}
| {
member: NonNullable<Product["member"]>
public?: never
}
| {
member: NonNullable<Product["member"]>
public: NonNullable<Product["public"]>
}
)
export type RateCode = {
publicRateCode: string

View File

@@ -33,6 +33,11 @@ export interface InitialRoomData {
roomTypeCode: string
}
export type RoomStep = {
step: StepEnum
isValid: boolean
}
export interface RoomState {
currentStep: StepEnum | null
isComplete: boolean
@@ -89,19 +94,3 @@ export type PersistedState = {
booking: SelectRateSearchParams
rooms: RoomState[]
}
export type RoomStep = {
step: StepEnum
isValid: boolean
}
export type RoomStatus = {
isComplete: boolean
currentStep: StepEnum | null
lastCompletedStep: StepEnum | undefined
steps: {
[StepEnum.selectBed]: RoomStep
[StepEnum.breakfast]?: RoomStep
[StepEnum.details]: RoomStep
}
}