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

const API_KEY = process.env.GOOGLE_MAPS_API_KEY;

export async function GET(request: NextRequest) {
  const placeId = request.nextUrl.searchParams.get("place_id");

  if (!placeId) {
    return NextResponse.json({ result: null }, { status: 400 });
  }

  if (!API_KEY) {
    return NextResponse.json(
      { result: null, message: "Google Maps API key is not configured." },
      { status: 500 },
    );
  }

  try {
    const url = new URL("https://maps.googleapis.com/maps/api/place/details/json");
    url.searchParams.set("place_id", placeId);
    url.searchParams.set("fields", "formatted_address,geometry,address_components");
    url.searchParams.set("key", API_KEY);

    const response = await fetch(url.toString(), { cache: "no-store" });
    const data = await response.json();

    if (data.status !== "OK") {
      console.error("Place details error:", data.status, data.error_message);
      return NextResponse.json({ result: null });
    }

    return NextResponse.json({ result: data.result });
  } catch (error) {
    console.error("Place details proxy error:", error);
    return NextResponse.json({ result: null }, { status: 500 });
  }
}
