Merged in fix/SW-1631-rate-terms-modal (pull request #1699)

fix(SW-1631): add rate terms modal

* fix(SW-1631): add rate terms modal


Approved-by: Simon.Emanuelsson
This commit is contained in:
Arvid Norlin
2025-04-02 09:36:53 +00:00
parent be04600863
commit 961e8aea91
26 changed files with 690 additions and 59 deletions

View File

@@ -338,12 +338,15 @@ export const roomsAvailabilitySchema = z
...product,
public: null,
})
if (rateDetailsMember) {
breakfastIncludedMember.push(
rateDetailsMember.breakfastIncluded
)
}
if (rateDetails && rateCode) {
if (rateDetailsMember) {
breakfastIncludedMember.push(
rateDetailsMember.breakfastIncluded
)
rateDetails.rateDefinitionMember =
rateDetailsMember.rateDefinition
}
const rateDefinition = findRateDefintion(rateCode)
if (rateDefinition) {
switch (rateDefinition.rateType) {

View File

@@ -18,7 +18,7 @@ const baseProductSchema = z.object({
breakfastIncluded: z.boolean().default(false),
// Used to set the rate that we use to chose titles etc.
rate: z.enum(["change", "flex", "save"]).default("save"),
rateDefinition: rateDefinitionSchema.nullish().transform((val) =>
rateDefinition: rateDefinitionSchema.optional().transform((val) =>
val
? val
: {
@@ -36,6 +36,7 @@ const baseProductSchema = z.object({
title: "",
}
),
rateDefinitionMember: rateDefinitionSchema.optional(),
})
function mapBaseProduct(baseProduct: typeof baseProductSchema._type) {
@@ -44,6 +45,7 @@ function mapBaseProduct(baseProduct: typeof baseProductSchema._type) {
breakfastIncluded: baseProduct.breakfastIncluded,
rate: baseProduct.rate,
rateDefinition: baseProduct.rateDefinition,
rateDefinitionMember: baseProduct.rateDefinitionMember,
}
}
@@ -98,12 +100,14 @@ export const redemptionsProduct = z
breakfastIncluded,
rate,
rateDefinition,
rateDefinitionMember,
...redemption
}) => ({
bookingCode,
breakfastIncluded,
rate,
rateDefinition,
rateDefinitionMember,
redemption,
})
)

View File

@@ -1,6 +1,7 @@
import { nullableStringValidator } from "@/utils/zod/stringValidator"
import { z } from "zod"
import { nullableStringValidator } from "@/utils/zod/stringValidator"
export const rateDefinitionSchema = z.object({
breakfastIncluded: z.boolean(),
cancellationRule: z.string(),