import type { RoomState } from "@/types/stores/enter-details" export function mapToPrice(rooms: RoomState[], isMember: boolean) { return rooms .filter((room) => room && room.room.roomRate) .map(({ room }, idx) => { const isMainRoom = idx === 0 if ("corporateCheque" in room.roomRate) { return { ...room, packages: room.roomFeatures, price: { corporateCheque: room.roomRate.corporateCheque.localPrice, }, } } if ("redemption" in room.roomRate) { return { ...room, packages: room.roomFeatures, price: { redemption: room.roomRate.redemption.localPrice, }, } } if ("voucher" in room.roomRate) { return { ...room, packages: room.roomFeatures, price: { voucher: room.roomRate.voucher, }, } } const isMemberRate = !!(room.guest.join || room.guest.membershipNo) if ((isMember && isMainRoom) || isMemberRate) { if ("member" in room.roomRate && room.roomRate.member) { return { ...room, packages: room.roomFeatures, price: { regular: room.roomRate.member.localPrice, }, } } } if ("public" in room.roomRate && room.roomRate.public) { return { ...room, packages: room.roomFeatures, price: { regular: room.roomRate.public.localPrice, }, } } console.error(room.roomRate) throw new Error(`Unknown roomRate`) }) }