import type { Amenities, Facility, HealthFacilities } from "@/types/hotel"
import type { ActivitiesCard } from "@/types/trpc/routers/contentstack/hotelPage"
import type { CardProps } from "@/components/TempDesignSystem/Card/card"

export type FacilitiesProps = {
  facilities: Facility[]
  activitiesCards: ActivitiesCard[]
  amenities: Amenities
  healthFacilities: HealthFacilities
}

export type FacilityImage = {
  backgroundImage: CardProps["backgroundImage"]
  theme: CardProps["theme"]
  id: string
}

export type FacilityCard = {
  secondaryButton: {
    href: string
    title: string
    openInNewTab?: boolean
    isExternal: boolean
    scrollOnClick: boolean
  }
  heading: string
  scriptedTopTitle?: string
  theme: CardProps["theme"]
  id: string
}

export type FacilityCardType = FacilityImage | FacilityCard
export type FacilityGrid = FacilityCardType[]
export type Facilities = FacilityGrid[]

export type CardGridProps = {
  facilitiesCardGrid: FacilityGrid
}

export enum FacilityCardTypeEnum {
  wellness = "wellness",
  conference = "meetings",
  restaurant = "restaurants",
}

export enum RestaurantHeadings {
  generic = "Good vibes, great bites!",
  restaurantAndBar = "Restaurant & Bar",
  bar = "Bar",
  restaurant = "Restaurant",
  breakfastRestaurant = "Breakfast Restaurant",
}

export enum WellnessHeadings {
  generic = "You got this!",
  GymPool = "Gym & Pool",
  GymSauna = "Gym & Sauna",
  GymPoolSaunaRelax = "Gym, Pool, Sauna & Relax",
  GymJacuzziSaunaRelax = "Gym, Jacuzzi, Sauna & Relax",
}

export enum MeetingsHeading {
  Default = "Great minds meet here",
}

export type HeadingEnum =
  | RestaurantHeadings
  | WellnessHeadings
  | MeetingsHeading

export enum HealthFacilitiesEnum {
  Jacuzzi = "Jacuzzi",
  Gym = "Gym",
  Sauna = "Sauna",
  Relax = "Relax",
  IndoorPool = "IndoorPool",
  OutdoorPool = "OutdoorPool",
}

export const FacilityCardButtonText = {
  RESTAURANT: "Read more",
  MEETINGS: "Read more",
  WELLNESS: "Read more",
} as const

export enum ExternalGymDetails {
  NameOfExternalGym = "NameOfExternalGym",
  DistanceToExternalGym = "DistanceToExternalGym",
  ExternalGym = "ExternalGym",
}

export enum IndoorPoolDetails {
  Length = "Length",
  Width = "Width",
  DepthTo = "DepthTo",
  DepthFrom = "DepthFrom",
}

export enum OutdoorPoolDetails {
  Length = "Length",
  Width = "Width",
  DepthTo = "DepthTo",
  DepthFrom = "DepthFrom",
  OpenMonthFrom = "OpenMonthFrom",
  OpenMonthTo = "OpenMonthTo",
}

export enum SaunaDetails {
  SeparateMenAndWomen = "SeparateMenAndWomen",
}

export const OpeningHoursType = {
  SetWeekDayAndWeekEndSchema: "SetWeekDayAndWeekEndSchema",
  SetFreeText: "SetFreeText",
} as const
