import { NextResponse } from "next/server";

export async function POST(request: Request) {
  try {
    const { imageUrl } = await request.json();
    if (!imageUrl) {
      return NextResponse.json({ error: "imageUrl is required" }, { status: 400 });
    }

    const apiKey = process.env.REMOVE_BG_API_KEY;
    if (!apiKey) {
      return NextResponse.json({ error: "REMOVE_BG_API_KEY not configured" }, { status: 500 });
    }

    const formData = new FormData();
    formData.append("image_url", imageUrl);
    formData.append("size", "auto");
    formData.append("format", "png");

    const response = await fetch("https://api.remove.bg/v1.0/removebg", {
      method: "POST",
      headers: {
        "X-Api-Key": apiKey,
      },
      body: formData as any,
    });

    if (!response.ok) {
      const text = await response.text();
      return NextResponse.json({ error: `remove.bg failed: ${text}` }, { status: 500 });
    }

    const arrayBuffer = await response.arrayBuffer();
    const base64 = Buffer.from(arrayBuffer).toString("base64");
    const dataUrl = `data:image/png;base64,${base64}`;
    return NextResponse.json({ success: true, dataUrl });
  } catch (error) {
    console.error("remove-bg error", error);
    return NextResponse.json({ error: "Failed to remove background" }, { status: 500 });
  }
}
