import type { z } from "zod" import type { checkinSchema, facilitySchema, getHotelDataSchema, parkingSchema, pointOfInterestSchema, } from "@/server/routers/hotels/output" import type { imageSchema } from "@/server/routers/hotels/schemas/image" import type { restaurantOpeningHoursSchema, restaurantSchema, } from "@/server/routers/hotels/schemas/restaurants" import type { roomSchema } from "@/server/routers/hotels/schemas/room" export type HotelData = z.output export type Hotel = HotelData["data"]["attributes"] export type HotelAddress = HotelData["data"]["attributes"]["address"] export type HotelLocation = HotelData["data"]["attributes"]["location"] export type Amenities = HotelData["data"]["attributes"]["detailedFacilities"] export type HealthFacilities = HotelData["data"]["attributes"]["healthFacilities"] type HotelRatings = HotelData["data"]["attributes"]["ratings"] export type HotelTripAdvisor = | NonNullable["tripAdvisor"] | undefined export type RoomData = z.infer export type RestaurantData = z.output export type RestaurantOpeningHours = z.output< typeof restaurantOpeningHoursSchema > export type GalleryImage = z.infer export type CheckInData = z.infer export type PointOfInterest = z.output export enum PointOfInterestGroupEnum { PUBLIC_TRANSPORT = "Public transport", ATTRACTIONS = "Attractions", BUSINESS = "Business", LOCATION = "Location", PARKING = "Parking", SHOPPING_DINING = "Shopping & Dining", } export type ParkingData = z.infer export type Facility = z.infer & { id: string } export type HotelMapContentProps = { coordinates: { lat: number; lng: number } pointsOfInterest: PointOfInterest[] onActivePoiChange?: (poiName: string | null) => void activePoi?: string | null }