import type { RawMetadataSchema } from "@scandic-hotels/trpc/routers/contentstack/metadata/output" export function getHotelPageImage(data: RawMetadataSchema) { const { subpageUrl, hotelData, additionalHotelData, hotelRestaurants } = data if (!hotelData) { return null } if (subpageUrl) { let subpageImage: { url: string; alt?: string } | null = null const restaurantSubPage = hotelRestaurants?.find( (restaurant) => restaurant.nameInUrl === subpageUrl ) const restaurantImage = restaurantSubPage?.content?.images?.[0] if (restaurantImage) { subpageImage = { url: restaurantImage.src, alt: restaurantImage.altText || restaurantImage.altText_En || undefined, } } else { switch (subpageUrl) { case additionalHotelData?.hotelParking.nameInUrl: const parkingImage = additionalHotelData?.parkingImages?.heroImages[0] if (parkingImage) { subpageImage = { url: parkingImage.src, alt: parkingImage.altText || parkingImage.altText_En || undefined, } } break case additionalHotelData?.healthAndFitness.nameInUrl: const wellnessImage = hotelData.healthFacilities.find( (fac) => fac.content.images.length )?.content.images[0] if (wellnessImage) { subpageImage = { url: wellnessImage.src, alt: wellnessImage.altText || wellnessImage.altText_En || undefined, } } break case additionalHotelData?.hotelSpecialNeeds.nameInUrl: const accessibilityImage = additionalHotelData?.accessibility?.heroImages[0] if (accessibilityImage) { subpageImage = { url: accessibilityImage.src, alt: accessibilityImage.altText || accessibilityImage.altText_En || undefined, } } break case additionalHotelData?.meetingRooms.nameInUrl: const meetingImage = additionalHotelData?.conferencesAndMeetings?.heroImages[0] if (meetingImage) { subpageImage = { url: meetingImage.src, alt: meetingImage.altText || meetingImage.altText_En || undefined, } } break default: break } } if (subpageImage) { return subpageImage } } const hotelImage = additionalHotelData?.gallery?.heroImages?.[0] || additionalHotelData?.gallery?.smallerImages?.[0] if (hotelImage) { return { url: hotelImage.src, alt: hotelImage.altText || undefined, } } return null }