import { NextResponse } from "next/server";
import { publishWebsiteHostDraft, uploadWebsiteAestheticToHost } from "@/lib/website-host-upload";
import type { Business } from "@/lib/types";

export async function POST(request: Request) {
  try {
    const body = (await request.json()) as {
      business: Business;
      recommendationIds?: string[];
      action?: "upload" | "publish";
    };

    if (!body.business?.input) {
      return NextResponse.json({ error: "Missing business payload" }, { status: 400 });
    }

    if (body.action === "publish") {
      const { receipt, business } = publishWebsiteHostDraft(body.business);
      return NextResponse.json({ receipt, business });
    }

    const { receipt, business } = uploadWebsiteAestheticToHost(body.business, {
      recommendationIds: body.recommendationIds,
    });

    return NextResponse.json({ receipt, business });
  } catch (error) {
    const message = error instanceof Error ? error.message : "Upload failed";
    return NextResponse.json({ error: message }, { status: 400 });
  }
}
