import { cache } from "@/utils/cache" import { serverClient } from "../server" import type { BreackfastPackagesInput, PackagesInput, } from "@/types/requests/packages" import type { Lang } from "@/constants/languages" import type { GetHotelsInput, GetRoomsAvailabilityInput, GetSelectedRoomAvailabilityInput, HotelDataInput, } from "@/server/routers/hotels/input" import type { GetSavedPaymentCardsInput } from "@/server/routers/user/input" export const getLocations = cache(async function getMemoizedLocations() { return serverClient().hotel.locations.get() }) export const getProfile = cache(async function getMemoizedProfile() { return serverClient().user.get() }) export const getName = cache(async function getMemoizedName() { return serverClient().user.name() }) export const getProfileSafely = cache( async function getMemoizedProfileSafely() { return serverClient().user.getSafely() } ) export const getSavedPaymentCardsSafely = cache( async function getMemoizedSavedPaymentCardsSafely( args: GetSavedPaymentCardsInput ) { return serverClient().user.safePaymentCards(args) } ) export const getMembershipLevel = cache( async function getMemoizedMembershipLevel() { return serverClient().user.membershipLevel() } ) export const getMembershipLevelSafely = cache( async function getMemoizedMembershipLevelSafely() { return serverClient().user.safeMembershipLevel() } ) export const getMembershipCards = cache( async function getMemoizedMembershipCards() { return serverClient().user.membershipCards() } ) export const getUserTracking = cache(async function getMemoizedUserTracking() { return serverClient().user.tracking() }) export const getHotels = cache(async function getMemoizedHotels( input: GetHotelsInput ) { return serverClient().hotel.hotels.get(input) }) export const getHotelData = cache(async function getMemoizedHotelData( input: HotelDataInput ) { return serverClient().hotel.hotelData.get(input) }) export const getHotelPage = cache(async function getMemoizedHotelPage() { return serverClient().contentstack.hotelPage.get() }) export const getRoomsAvailability = cache( async function getMemoizedRoomAvailability(input: GetRoomsAvailabilityInput) { return serverClient().hotel.availability.rooms(input) } ) export const getSelectedRoomAvailability = cache( function getMemoizedSelectedRoomAvailability( args: GetSelectedRoomAvailabilityInput ) { return serverClient().hotel.availability.room(args) } ) export const getFooter = cache(async function getMemoizedFooter() { return serverClient().contentstack.base.footer() }) export const getHeader = cache(async function getMemoizedHeader() { return serverClient().contentstack.base.header() }) export const getCurrentHeader = cache(async function getMemoizedCurrentHeader( lang: Lang ) { return serverClient().contentstack.base.currentHeader({ lang }) }) export const getCurrentFooter = cache(async function getMemoizedCurrentFooter( lang: Lang ) { return serverClient().contentstack.base.currentFooter({ lang }) }) export const getMyPagesNavigation = cache( async function getMemoizedMyPagesNavigation() { return serverClient().contentstack.myPages.navigation.get() } ) export const getLanguageSwitcher = cache( async function getMemoizedLanguageSwitcher() { return serverClient().contentstack.languageSwitcher.get() } ) export const getSiteConfig = cache(async function getMemoizedSiteConfig() { return serverClient().contentstack.base.siteConfig() }) export const getBreakfastPackages = cache(function getMemoizedBreakfastPackages( input: BreackfastPackagesInput ) { return serverClient().hotel.packages.breakfast(input) }) export const getPackages = cache(function getMemoizedPackages( input: PackagesInput ) { return serverClient().hotel.packages.get(input) }) export const getBookingConfirmation = cache( function getMemoizedBookingConfirmation(confirmationNumber: string) { return serverClient().booking.confirmation({ confirmationNumber }) } ) export const getCityCoordinates = cache( async function getMemoizedCityCoordinates(input: { city: string hotel: { address: string | undefined } }) { return serverClient().hotel.map.city(input) } ) export const getCurrentRewards = cache( async function getMemoizedCurrentRewards() { return serverClient().contentstack.rewards.current() } ) export const getMeetingRooms = cache( async function getMemoizedMeetingRooms(input: { hotelId: string language: Lang }) { return serverClient().hotel.meetingRooms(input) } ) export const getDestinationOverviewPage = cache( async function getMemoizedDestinationOverviewPage() { return serverClient().contentstack.destinationOverviewPage.get() } ) export const getDestinationCountryPage = cache( async function getMemoizedDestinationCountryPage() { return serverClient().contentstack.destinationCountryPage.get() } ) export const getDestinationCityPage = cache( async function getMemoizedDestinationCityPage() { return serverClient().contentstack.destinationCityPage.get() } )