import type { RoomsAvailability } from "@/types/trpc/routers/hotel/roomAvailability" export function combineRoomAvailabilities( availabilityResults: PromiseSettledResult[] ) { return availabilityResults.reduce((acc, result) => { if (result.status === "fulfilled" && result.value) { if (acc) { acc.roomConfigurations.push(...result.value.roomConfigurations) } else { acc = result.value } } // Ping monitoring about fail? if (result.status === "rejected") { console.info(`RoomAvailability fetch failed`) console.error(result.reason) } return acc }, null) } export function getRates( rateDefinitions: RoomsAvailability["rateDefinitions"] ) { return { change: rateDefinitions.filter( (rate) => rate.cancellationRule === "Changeable" ), flex: rateDefinitions.filter( (rate) => rate.cancellationRule === "CancellableBefore6PM" ), save: rateDefinitions.filter( (rate) => rate.cancellationRule === "NotCancellable" ), } }