import { ErroDigital, rotaDigital } from "@/lib/digitais/servidor/contexto";
import { criarCompraDeLive } from "@/lib/live/servidor/compras";
import { origemPublicaDoAdmin } from "@/lib/origem-publica";

/* Abre o Checkout Pro do Mercado Pago da Ktalogu para um pacote KtaloguLive. */
export async function POST(req: Request) {
  return rotaDigital("subscription.manage", async ({ admin, lojaId, user }) => {
    const corpo = (await req.json().catch(() => null)) as { pacoteId?: unknown } | null;
    const pacoteId = typeof corpo?.pacoteId === "string" && /^[0-9a-f-]{36}$/i.test(corpo.pacoteId) ? corpo.pacoteId : null;
    if (!pacoteId) throw new ErroDigital("Escolha um pacote.", 400);
    const { data: loja } = await admin.from("profiles").select("store_name,company_email").eq("id", lojaId).maybeSingle();
    return criarCompraDeLive(admin, {
      empresaId: lojaId,
      pacoteId,
      usuarioId: user.id,
      email: user.email || (loja?.company_email as string | null) || null,
      nome: (loja?.store_name as string | null) || null,
      origem: origemPublicaDoAdmin(req),
    });
  });
}
