import { logger } from "@scandic-hotels/common/logger" import { type AncillaryFormData, PaymentChoiceEnum, } from "@/components/HotelReservation/MyStay/Ancillaries/AddAncillaryFlow/schema" import type { Ancillary, SelectedAncillary, } from "@/types/components/myPages/myStay/ancillaries" import type { BreakfastData } from "@/stores/my-stay/add-ancillary-flow" export const generateDeliveryOptions = () => { const timeSlots = ["16:00-17:00", "17:00-18:00", "18:00-19:00", "19:00-20:00"] return timeSlots.map((slot) => ({ label: slot, value: slot, })) } export function buildAncillaryPackages( data: AncillaryFormData, ancillary: SelectedAncillary | null ) { const packages = [] if (ancillary?.id && data.paymentChoice === PaymentChoiceEnum.Card) { packages.push({ code: ancillary.id, quantity: data.quantity, comment: data.optionalText || undefined, }) } if ( ancillary?.loyaltyCode && data.paymentChoice === PaymentChoiceEnum.Points ) { packages.push({ code: ancillary.loyaltyCode, quantity: data.quantity, comment: data.optionalText || undefined, }) } return packages } const ancillarySessionKey = "ancillarySessionData" export const getAncillarySessionData = (): | { formData?: AncillaryFormData selectedAncillary?: Ancillary["ancillaryContent"][number] | null packages: { code: string quantity: number comment: string | undefined }[] isBreakfast: boolean breakfastData: BreakfastData | null } | undefined => { if (typeof window === "undefined") return undefined try { const storedData = sessionStorage.getItem(ancillarySessionKey) return storedData ? JSON.parse(storedData) : undefined } catch (error) { logger.error("Error reading from session storage:", error) return undefined } } export function setAncillarySessionData({ formData, selectedAncillary, packages, isBreakfast, breakfastData, }: { formData?: AncillaryFormData selectedAncillary?: Ancillary["ancillaryContent"][number] | null packages: { code: string quantity: number comment: string | undefined }[] isBreakfast: boolean breakfastData: BreakfastData | null }) { if (typeof window === "undefined") return try { const currentData = getAncillarySessionData() || {} sessionStorage.setItem( ancillarySessionKey, JSON.stringify({ ...currentData, formData, selectedAncillary, packages, isBreakfast, breakfastData, }) ) } catch (error) { logger.error("Error writing to session storage:", error) } } export function clearAncillarySessionData() { if (typeof window === "undefined") return sessionStorage.removeItem(ancillarySessionKey) }