/* ============================================================
   EDUCARE — Destinos de cobrança (ÚNICO ponto de configuração)

   Todo botão que leva dinheiro para fora do app sai daqui: assinar,
   trocar de ciclo, falar sobre o plano de equipe, pedir cancelamento.
   O gateway ainda pode mudar, e um link espalhado por cinco telas vira
   cinco lugares para esquecer de atualizar.

   Enquanto um destino for null, a interface NÃO inventa botão: mostra a
   frase de espera. Botão que não leva a lugar nenhum é pior do que
   botão nenhum — a pessoa clica, nada acontece, e conclui que o sistema
   quebrou justo na hora de pagar.

   ATENÇÃO ao preencher: o valor cobrado no link tem que bater com
   billing_plans no banco. É o valor pago que identifica o plano no
   aviso do gateway (supabase/functions/pagamento-webhook), porque o
   link é o mesmo para todas as clientes e não carrega número de pedido.
   Preço divergente aqui significa pagamento que não libera ninguém.

   O espelho deste arquivo na página de vendas é
   src/components/landing/links.js, no repo "Educare - LP". Os dois
   precisam apontar para os MESMOS links: o valor pago é a única coisa
   que identifica o plano, então divergir aqui é liberar plano errado.

   Gateway: Cakto. Os links da InfinitePay foram aposentados junto com
   os preços antigos.
   ============================================================ */
(function () {
  /* Checkout por plano e por ciclo. As chaves são os ids de
     billing_plans. Plano ausente aqui simplesmente não tem checkout, e
     a tela trata isso sozinha.

     Id não é nome comercial, e desde a 20260807000000 os dois divergem
     de propósito: inicio → Básico, clinico → Clínica, clinica →
     Clínica Pro. Trocar chave aqui é mexer em cobrança, não em copy. */
  const CHECKOUT = {
    inicio: {
      mensal: "https://pay.cakto.com.br/q824ske_1029795",   // R$ 39,90
      anual:  "https://pay.cakto.com.br/37yunrs",           // R$ 299,90
    },
    clinico: {
      mensal: "https://pay.cakto.com.br/39ee3mh",           // R$ 79,90
      anual:  "https://pay.cakto.com.br/nmnu3a9",           // R$ 599,90
    },
    /* O plano de equipe (hoje "Clínica Pro") passou a ter checkout por
       decisão comercial. Vale lembrar o que ele ainda NÃO entrega: o
       produto não tem conta de equipe, então "até 4 profissionais" é
       promessa de catálogo, e não algo que o sistema hoje faça
       acontecer. */
    clinica: {
      mensal: "https://pay.cakto.com.br/327reyw",           // R$ 149,90
      anual:  "https://pay.cakto.com.br/34cnyh2",           // R$ 1.129,90
    },
  };

  /* Onde a pessoa fala com gente de verdade: o WhatsApp do especialista.
     Caem aqui o botão Suporte do menu, o plano de equipe, o pedido de
     cancelamento e o estouro de uso justo da IA.
     Aceita "https://wa.me/55..." ou "mailto:contato@...". */
  const CONTATO = "https://wa.me/5527997212824";

  /* O mesmo número, escrito como gente lê. A janela de suporte mostra
     este texto ao lado do canal, para a pessoa saber para onde está
     indo antes de clicar. Um teste confere que os dígitos daqui são os
     mesmos do link acima — dois lugares com o número é onde nasce a
     divergência. */
  const CONTATO_WHATSAPP_TEXTO = "(27) 99721-2824";

  /* Segundo canal, para quem prefere escrever. Endereço puro, sem o
     "mailto:": o menu também MOSTRA esse texto, e quem lê não quer ver
     o prefixo. Sendo null, o suporte oferece só o WhatsApp — botão que
     não leva a lugar nenhum é pior do que botão que não existe. */
  const CONTATO_EMAIL = "educaregestaocontato@gmail.com";

  /* Quem chega pelo botão Suporte já manda a mensagem escrita — sem
     isso a conversa começa com um "oi" solto e o especialista não sabe
     de onde a pessoa veio nem do que ela precisa. */
  const SUPORTE_MSG = "Olá! Preciso de ajuda com o Educare.";
  const SUPORTE_ASSUNTO = "Ajuda com o Educare";

  function urlDe(plano, ciclo) {
    const p = CHECKOUT[plano];
    const base = (p && p[ciclo]) || null;
    /* Leva o e-mail da conta: digitando outro no checkout, o pagamento
       criava uma SEGUNDA conta em vez de liberar esta (auditoria de
       25/09/2026). Se a Cakto não usar o parâmetro, ele é ignorado. */
    const email = window.__USER && window.__USER.email;
    if (!base || !email) return base;
    return base + (base.includes("?") ? "&" : "?") + "email=" + encodeURIComponent(email);
  }

  /* Só o WhatsApp aceita mensagem pronta na URL; mailto e afins voltam
     como estão. */
  function suporteWhatsApp() {
    if (!CONTATO) return null;
    if (!CONTATO.startsWith("https://wa.me/")) return CONTATO;
    return CONTATO + "?text=" + encodeURIComponent(SUPORTE_MSG);
  }

  /* O assunto já preenchido faz o pedido chegar na caixa de entrada
     dizendo do que se trata, em vez de um e-mail sem assunto. */
  function suporteEmail() {
    if (!CONTATO_EMAIL) return null;
    return "mailto:" + CONTATO_EMAIL + "?subject=" + encodeURIComponent(SUPORTE_ASSUNTO);
  }

  window.EducareCheckout = {
    urlDe,
    temCheckout: (plano, ciclo) => urlDe(plano, ciclo) !== null,
    contato: () => CONTATO,
    temContato: () => CONTATO !== null,
    suporteWhatsApp,
    suporteWhatsAppTexto: () => CONTATO_WHATSAPP_TEXTO,
    suporteEmail,
    suporteEmailEndereco: () => CONTATO_EMAIL,
  };
})();
