import type { IntlShape } from "react-intl/src/types"

import { RoomLighting, SeatingType } from "@/types/enums/meetingRooms"

export function translateRoomLighting(option: string, intl: IntlShape) {
  switch (option) {
    case RoomLighting.WindowsNaturalDaylight:
      return intl.formatMessage({
        defaultMessage: "Windows with natural daylight",
      })
    case RoomLighting.IndoorWindowsExcellentLighting:
      return intl.formatMessage({
        defaultMessage: "Indoor windows and excellent lighting",
      })
    case RoomLighting.IndoorWindowsFacingHotel:
      return intl.formatMessage({
        defaultMessage: "Indoor windows facing the hotel",
      })
    case RoomLighting.NoWindows:
      return intl.formatMessage({
        defaultMessage: "No windows",
      })
    case RoomLighting.NoWindowsExcellentLighting:
      return intl.formatMessage({
        defaultMessage: "No windows but excellent lighting",
      })
    case RoomLighting.WindowsNaturalDaylightBlackoutFacilities:
      return intl.formatMessage({
        defaultMessage: "Windows natural daylight and blackout facilities",
      })
    case RoomLighting.WindowsNaturalDaylightExcellentView:
      return intl.formatMessage({
        defaultMessage: "Windows natural daylight and excellent view",
      })
    default:
      console.warn(`Unsupported conference room ligthing option: ${option}`)
      return intl.formatMessage({
        defaultMessage: "N/A",
      })
  }
}

export function translateSeatingType(type: string, intl: IntlShape) {
  switch (type) {
    case SeatingType.Boardroom:
      return intl.formatMessage({
        defaultMessage: "Boardroom",
      })
    case SeatingType.Cabaret:
      return intl.formatMessage({
        defaultMessage: "Cabaret seating",
      })
    case SeatingType.Classroom:
      return intl.formatMessage({
        defaultMessage: "Classroom",
      })
    case SeatingType.FullCircleTable:
      return intl.formatMessage({
        defaultMessage: "Full circle",
      })
    case SeatingType.HalfCircle:
      return intl.formatMessage({
        defaultMessage: "Half circle",
      })
    case SeatingType.StandingTable:
      return intl.formatMessage({
        defaultMessage: "Standing table",
      })
    case SeatingType.Theatre:
      return intl.formatMessage({
        defaultMessage: "Theatre",
      })
    case SeatingType.UShape:
      return intl.formatMessage({
        defaultMessage: "U-shape",
      })
    default:
      console.warn(`Unsupported conference room type : ${type}`)
      return intl.formatMessage({
        defaultMessage: "N/A",
      })
  }
}
