import { NextResponse } from "next/server";
import { createClient } from "@/lib/supabase-server";
import { canCompany, getCompanyContext } from "@/lib/company-context";
import { duplicarOrcamento } from "@/lib/duplicar-orcamento.server";

export const runtime = "nodejs";

/* A cópia em si mora em lib/duplicar-orcamento.server.ts, que o assistente também usa. */

async function getAuth() {
  const supabase = await createClient();
  const {
    data: { user },
  } = await supabase.auth.getUser();
  return { supabase, user };
}

export async function POST(_req: Request, ctx: { params: Promise<{ id: string }> }) {
  const params = await ctx.params;
  const sourceQuoteId = params.id;

  const { supabase, user } = await getAuth();
  if (!user) return NextResponse.json({ error: "Não autenticado." }, { status: 401 });

  const companyCtx = await getCompanyContext(supabase, user);
  if (!canCompany(companyCtx, user.id, "quotes.write")) {
    return NextResponse.json({ error: "Sem permissão." }, { status: 403 });
  }

  const resultado = await duplicarOrcamento(supabase, user, companyCtx, sourceQuoteId);
  return NextResponse.json(resultado.corpo, { status: resultado.status });
}
