import { handleTossPayBillingCallback } from "@/lib/toss-pay";

export async function POST(request: Request) {
  let payload: unknown;

  try {
    payload = await request.json();
  } catch {
    return Response.json(
      { error: "invalid-json", message: "JSON 본문이 필요합니다." },
      { status: 400 },
    );
  }

  try {
    await handleTossPayBillingCallback(
      typeof payload === "object" && payload !== null ? (payload as Record<string, unknown>) : {},
    );

    return Response.json({ ok: true });
  } catch (error) {
    return Response.json(
      {
        error: "billing-callback-failed",
        message:
          error instanceof Error
            ? error.message
            : "빌링키 콜백 처리에 실패했습니다.",
      },
      { status: 400 },
    );
  }
}
