import type { HotelPin } from "@/types/components/hotelReservation/selectHotel/map" import type { HotelResponse } from "@/components/HotelReservation/SelectHotel/helpers" export function getHotelPins( hotels: HotelResponse[], currencyValue?: string ): HotelPin[] { if (!hotels.length) { return [] } return hotels.map(({ availability, hotel, additionalData }) => { const productType = availability.productType const redemptionRate = productType?.redemptions?.find( (r) => r?.localPrice.pointsPerStay ) return { bookingCode: productType?.public?.bookingCode ?? productType?.member?.bookingCode, coordinates: { lat: hotel.location.latitude, lng: hotel.location.longitude, }, name: hotel.name, publicPrice: productType?.public?.localPrice.pricePerNight ?? null, memberPrice: productType?.member?.localPrice.pricePerNight ?? null, redemptionPrice: redemptionRate?.localPrice.pointsPerStay ?? null, rateType: productType?.public?.rateType ?? productType?.member?.rateType ?? null, currency: productType?.public?.localPrice.currency || productType?.member?.localPrice.currency || currencyValue || "N/A", images: [ hotel.hotelContent.images, ...(additionalData.gallery?.heroImages ?? []), ], amenities: hotel.detailedFacilities .map((facility) => ({ ...facility, icon: facility.icon ?? "None", })) .slice(0, 5), ratings: hotel.ratings?.tripAdvisor.rating ?? null, operaId: hotel.operaId, facilityIds: hotel.detailedFacilities.map((facility) => facility.id), } }) }