import { SignatureHotelEnum } from "@scandic-hotels/common/constants/signatureHotels" import { HotelTypeEnum } from "@scandic-hotels/trpc/enums/hotelType" import { env } from "@/env/server" import { getHotel, getHotelPage } from "@/lib/trpc/memoizedRequests" import { DEFAULT_THEME, Theme } from "./types" import type { Lang } from "@scandic-hotels/common/constants/language" function getSignatureHotelTheme(hotelId: string) { switch (hotelId) { case SignatureHotelEnum.Haymarket: return Theme.haymarket case SignatureHotelEnum.HotelNorge: return Theme.hotelNorge case SignatureHotelEnum.DowntownCamper: return Theme.downtownCamper case SignatureHotelEnum.GrandHotelOslo: return Theme.grandHotel case SignatureHotelEnum.Marski: return Theme.marski default: return Theme.scandic } } function getThemeByHotel(hotelId: string, hotelType: string) { if (hotelType === HotelTypeEnum.ScandicGo) { return Theme.scandicGo } if (hotelType === HotelTypeEnum.Signature) { return getSignatureHotelTheme(hotelId) } return DEFAULT_THEME } export async function getHotelTheme(language: Lang): Promise { if (!env.HOTEL_BRANDING) { return DEFAULT_THEME } try { const hotelPageData = await getHotelPage() if (!hotelPageData) { return DEFAULT_THEME } const hotelData = await getHotel({ hotelId: hotelPageData.hotel_page_id, isCardOnlyPayment: false, language, }) if (!hotelData) { return DEFAULT_THEME } return getThemeByHotel( hotelPageData.hotel_page_id, hotelData.hotel.hotelType ) } catch { return DEFAULT_THEME } }