import { type NextRequest, NextResponse } from "next/server"

import { env } from "@/env/server"
import { serverClient } from "@/lib/trpc/server"

import { languageSchema } from "@/utils/languages"

export const dynamic = "force-dynamic"

export async function GET(request: NextRequest) {
  if (!env.ENABLE_WARMUP_HOTEL) {
    console.log("[WARMUP] Warmup hotel data is disabled")
    return NextResponse.json(
      { message: "Warmup hotel data is disabled" },
      { status: 200 }
    )
  }

  try {
    const searchParams = request.nextUrl.searchParams
    const lang = searchParams.get("lang")
    const parsedLang = languageSchema.safeParse(lang)

    if (!parsedLang.success) {
      throw new Error("[WARMUP] Invalid language provided")
    }

    const caller = await serverClient()
    const hotels = await caller.hotel.hotels.getDestinationsMapData({
      lang: parsedLang.data,
      warmup: true,
    })
    return NextResponse.json(hotels)
  } catch (error) {
    console.error("[WARMUP] error", error)
    return NextResponse.json(
      {
        error: "Failed to fetch all hotels",
      },
      { status: 500, statusText: "Internal Server Error" }
    )
  }
}
