import { NextResponse } from "next/server";

import { PLANOS } from "@/lib/assinatura";
import { linkDePagamento, marcaDaEmpresa } from "@/lib/assinatura-cakto";
import { getCompanyContext } from "@/lib/company-context";
import { createClient } from "@/lib/supabase-server";

export const runtime = "nodejs";

/**
 * Os links de pagamento da Cakto com a marca da empresa de quem está logado.
 * A Cakto devolve a marca no aviso do pagamento, e a compra cai nesta empresa
 * mesmo que a pessoa pague com outro e-mail. Funcionário que paga, paga a da
 * empresa. Responde também com a assinatura vencida: é daqui que ela renova.
 */
export async function GET() {
  const supabase = await createClient();
  const {
    data: { user },
  } = await supabase.auth.getUser();
  if (!user) return NextResponse.json({ error: "Não autenticado." }, { status: 401 });

  const ctx = await getCompanyContext(supabase, user);
  const marca = ctx.ownerId ? marcaDaEmpresa(ctx.ownerId, String(process.env.CAKTO_WEBHOOK_SECRET || "").trim()) : null;

  return NextResponse.json(
    {
      mensal: linkDePagamento(PLANOS.mensal.oferta, marca),
      anual: linkDePagamento(PLANOS.anual.oferta, marca),
    },
    { headers: { "Cache-Control": "no-store" } }
  );
}
