#!/usr/bin/env python3
"""Monta proposta HTML da Sonho & Purpurinas a partir do template."""

from pathlib import Path
import re

TEMPLATE = Path("/opt/mia/.claude/skills/gerar-proposta-comercial/template-proposta.html")
OUT = Path("/opt/mia/workspace/clientes/sonho-purpurinas/proposta/index.html")
OUT.parent.mkdir(exist_ok=True, parents=True)

CONTEXTO = (
    "A Sonho & Purpurinas nasce como loja virtual de moda intima (pijamas e camisolas) "
    "operando em dropshipping nacional, com Beatriz a frente do negocio e tres fabricantes "
    "parceiros despachando direto ao consumidor final. O proximo passo e sair do papel: "
    "estruturar identidade visual profissional, montar a loja Nuvemshop integrada ao Bling "
    "e a Appmax, com remetente unico, SEO bem feito, recuperacao de carrinho ativa, "
    "WhatsApp integrado e tudo pronto pra escalar. A Climb assume o projeto de ponta a ponta: "
    "marca, ecommerce, integracoes e conteudo escrito. Em 30 dias uteis apos a aprovacao da "
    "identidade visual, a loja entra no ar pronta pra vender."
)

METRICAS = """
      <div class="metric"><div class="metric-value">30</div><div class="metric-label">dias uteis pra entrega</div></div>
      <div class="metric"><div class="metric-value">3</div><div class="metric-label">fabricantes integrados</div></div>
      <div class="metric"><div class="metric-value">20</div><div class="metric-label">produtos cadastrados</div></div>
"""

DIAG_FUNCIONA = """
      <li>Modelo de negocio validado: dropshipping nacional em moda intima, ticket de entrada acessivel</li>
      <li>MEI ativa, CNPJ formalizado, dominio proprio (sonhoepurpurinas.com.br) ja registrado</li>
      <li>Conta Bling Cobalto ativa, essencial pra operar 3 depositos com remetente unico</li>
      <li>Conta Appmax aprovada e pronta pra integrar via checkout transparente</li>
      <li>Certificado Digital A1 em fase final de validacao, garante emissao automatica de NF-e</li>
      <li>3 fabricantes parceiros selecionados, alinhamento comercial em andamento</li>
"""

DIAG_MUDAR = """
      <li>Sem identidade visual definida: marca precisa ganhar cara, paleta, tipografia e conceito antes do design da loja</li>
      <li>Sem plataforma ativa: loja Nuvemshop precisa ser montada do zero, tema customizado e integracoes plugadas</li>
      <li>Sem conteudo escrito: descricoes, FAQ, sobre, politicas (troca, devolucao, privacidade, frete) precisam ser produzidos</li>
      <li>Bling sem configuracao de multi-deposito e blind dropshipping (envio as cegas) ativo</li>
      <li>Sem integracao de frete: Melhor Envio precisa ser configurado com regras (frete pago + frete gratis condicional)</li>
      <li>Sem SEO on-page, sem recuperacao de carrinho, sem WhatsApp, sem captura de email: pontos de venda perdidos</li>
"""

SOLUCAO = """
      <p>A Climb entrega o ecossistema completo, do conceito de marca ate o pedido sendo despachado: <strong>identidade visual profissional</strong> (logo, paleta, tipografia, conceito), <strong>loja Nuvemshop</strong> com tema customizado, <strong>integracao Bling Cobalto</strong> com 3 depositos e remetente fixo, <strong>Appmax</strong> em checkout transparente com backup Mercado Pago ou PagSeguro, <strong>Melhor Envio</strong> com regras de frete, <strong>conteudo institucional escrito por nos</strong>, <strong>SEO on-page</strong>, <strong>WhatsApp + botao flutuante</strong>, <strong>pop-up de captura</strong> e <strong>recuperacao de carrinho</strong> ativa.</p>
      <p style="margin-top: 14px;">Quando a loja entrar no ar, voce so abre o painel, ve o pedido cair, valida que saiu pra o fabricante certo e ja pode focar 100% em trafego e atendimento. Sem fornecedor aparecendo pro cliente, sem nota fora do padrao, sem operacao manual.</p>
      <p style="margin-top: 14px;"><strong>Observacao:</strong> projeto dimensionado pra operacao MEI (limite R$ 81.000/ano). Migracao pra ME pode ser planejada conforme o crescimento.</p>
"""

ESCADA_VALOR = """
      <h3>Degrau 1 — Trafego organico e visitante novo</h3>
      <p>SEO on-page bem feito + perfil otimizado nas redes traz visitante qualificado pra loja. Pop-up de captura troca cupom por email, alimentando a base. Esse e o degrau gratuito que sustenta o restante.</p>

      <h3 style="margin-top: 22px;">Degrau 2 — Primeira compra</h3>
      <p>Cliente chega, encontra a peca, paga via Appmax (Pix ou cartao parcelado). Bling identifica o fabricante correto, baixa estoque do deposito certo, emite NF com remetente Sonho &amp; Purpurinas e despacha. Ticket de entrada esperado: R$ 80 a R$ 180.</p>

      <h3 style="margin-top: 22px;">Degrau 3 — Recuperacao e recompra</h3>
      <p>Recuperacao de carrinho nativa da Nuvemshop reativa quem nao finalizou. WhatsApp + botao flutuante encurta duvida. Cada cliente que comprou volta pra base segmentada por ticket, virando recompra recorrente.</p>

      <h3 style="margin-top: 22px;">Degrau 4 — Trafego pago (opcional)</h3>
      <p>Com a loja rodando e dados organizados, o proximo passo e abrir torneira de mercado pago: Meta Ads + Google Ads com Pixel, GA4 e Catalogo ja prontos. Esse degrau esta na aba <em>Investimento</em> como adicional.</p>
"""

TAB_TIT = "Ecommerce Stack"

TAB_HTML = """
    <p>O ecossistema completo da Sonho & Purpurinas em uma tela. Cada peca conversa com a outra automaticamente.</p>

    <div class="grid grid-3" style="margin-top: 18px;">
      <div class="glass-card"><h3>Identidade Visual</h3><p>Logo, paleta de cores, tipografia e conceito de marca criados pela Climb. Esse e o ponto de partida: sem identidade, nao faz sentido desenhar a loja.</p></div>
      <div class="glass-card"><h3>Nuvemshop</h3><p>Plataforma de ecommerce. Tema customizado, layout pensado pra moda intima, mobile first. Integra nativamente com Bling.</p></div>
      <div class="glass-card"><h3>Bling Cobalto</h3><p>ERP central. 3 depositos configurados (Fabricante A, B, C), cadastro de 20 produtos com variacoes P/M/G/GG, remetente fixo na NF-e e etiqueta.</p></div>
      <div class="glass-card"><h3>Appmax + Backup</h3><p>Gateway principal em checkout transparente. Backup Mercado Pago ou PagSeguro plugado pra zero risco de cliente perder a compra por falha de processador.</p></div>
      <div class="glass-card"><h3>Melhor Envio</h3><p>Gateway de frete integrado. Regras configuradas: cliente paga na maioria, frete gratis condicional pra regiao ou ticket minimo como gatilho de marketing.</p></div>
      <div class="glass-card"><h3>SEO + Conversao</h3><p>SEO on-page completo (meta tags, URLs amigaveis, sitemap, schema, otimizacao de imagens), pop-up de captura, recuperacao de carrinho nativa e WhatsApp + botao flutuante.</p></div>
    </div>

    <h3 style="margin-top: 28px;">Fluxo de venda ponta a ponta</h3>
    <ol class="bullets">
      <li>Visitante chega via SEO ou redes sociais. Pop-up oferece cupom em troca de email.</li>
      <li>Cliente escolhe peca, vai pro carrinho, finaliza no checkout transparente (Appmax).</li>
      <li>Se Appmax falhar, backup MP/PagSeguro entra automaticamente. Cliente nao percebe.</li>
      <li>Pagamento aprovado: Bling identifica o fabricante correto e baixa estoque so daquele deposito.</li>
      <li>Bling emite NF-e com remetente Sonho &amp; Purpurinas e gera etiqueta via Melhor Envio.</li>
      <li>Fabricante recebe a ordem, embala e despacha. Cliente recebe sem saber que existiu terceiro.</li>
      <li>Carrinho abandonado? Nuvemshop dispara email automatico. WhatsApp flutuante captura duvida.</li>
    </ol>

    <h3 style="margin-top: 28px;">Conteudo escrito pela Climb (incluso)</h3>
    <div class="glass-card">
      <p><strong>Pagina Sobre:</strong> historia da marca, posicionamento, valores.</p>
      <p style="margin-top: 10px;"><strong>FAQ:</strong> duvidas mais comuns de moda intima e dropshipping, redigidas com voz da marca.</p>
      <p style="margin-top: 10px;"><strong>Politicas:</strong> troca, devolucao, privacidade e frete, dentro do CDC e da LGPD.</p>
      <p style="margin-top: 10px;"><strong>Descricoes dos 20 produtos:</strong> texto comercial unico por item, sem copia direta do fabricante.</p>
    </div>
"""

ENTREGAVEIS = """
      <label class="check-item"><input type="checkbox"> <span class="check-text">Identidade visual completa: logo, paleta, tipografia e conceito de marca</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Loja Nuvemshop com tema customizado pra moda intima, mobile first</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Bling Cobalto configurado com 3 depositos (Fabricante A, B e C)</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Cadastro de 20 produtos no Bling com variacoes P/M/G/GG e vinculo ao fabricante</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Remetente fixo configurado (blind dropshipping) na NF-e e na etiqueta</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Certificado Digital A1 instalado no Bling</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Integracao Bling x Nuvemshop ativada (produtos, estoque e pedidos sincronizando)</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Appmax integrada em checkout transparente (Pix e cartao parcelado)</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Backup de gateway (Mercado Pago ou PagSeguro) configurado</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Melhor Envio integrado com regras de frete (pago e gratis condicional)</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Conteudo escrito pela Climb: sobre, FAQ, politicas e 20 descricoes de produto</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">SEO on-page: meta tags, URLs amigaveis, sitemap, schema markup, otimizacao de imagens</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">WhatsApp Business integrado + botao flutuante na loja</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Pop-up de captura de email/cupom configurado</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Recuperacao de carrinho abandonado (nativa Nuvemshop) ativada</span></label>
      <label class="check-item"><input type="checkbox"> <span class="check-text">Homologacao: pedido teste ponta a ponta (NF, etiqueta, baixa de estoque, webhook)</span></label>
"""

FASES = """
      <div class="fase">
        <h3>Fase 1 — Identidade Visual (dias 1 a 7)</h3>
        <p>Briefing de marca, criacao de logo, paleta, tipografia e conceito. Entrega em ate 1 rodada de ajustes. Aprovacao da identidade libera o restante do projeto.</p>
      </div>
      <div class="fase">
        <h3>Fase 2 — Bling + integracoes fiscais (dias 8 a 14)</h3>
        <p>Configuracao dos 3 depositos no Bling, cadastro dos 20 produtos com variacoes, ativacao do Certificado A1, remetente fixo e regras de NF-e.</p>
      </div>
      <div class="fase">
        <h3>Fase 3 — Nuvemshop + conteudo + SEO (dias 15 a 22)</h3>
        <p>Montagem da loja Nuvemshop com tema customizado em cima da identidade aprovada. Integracao nativa com Bling. Escrita das paginas institucionais e descricoes. SEO on-page aplicado em todas as paginas.</p>
      </div>
      <div class="fase">
        <h3>Fase 4 — Pagamento, frete e conversao (dias 23 a 26)</h3>
        <p>Appmax em checkout transparente, backup MP/PagSeguro, Melhor Envio com regras de frete, pop-up de captura, recuperacao de carrinho e WhatsApp + botao flutuante.</p>
      </div>
      <div class="fase">
        <h3>Fase 5 — Homologacao e go live (dias 27 a 30)</h3>
        <p>Pedidos teste ponta a ponta (varejo e atacado), validacao de NF, etiqueta, baixa de estoque do fabricante certo e webhook de pagamento. Loja entra no ar.</p>
      </div>
"""

GANTT = """
      <div class="gantt-row"><div class="gantt-label">Fase 1 — Identidade</div><div class="gantt-bar-wrap"><div class="gantt-bar" style="left: 0%; width: 23%;">7d</div></div></div>
      <div class="gantt-row"><div class="gantt-label">Fase 2 — Bling</div><div class="gantt-bar-wrap"><div class="gantt-bar" style="left: 23%; width: 23%; background: linear-gradient(90deg, var(--cyan), var(--gold-light));">7d</div></div></div>
      <div class="gantt-row"><div class="gantt-label">Fase 3 — Nuvemshop + SEO</div><div class="gantt-bar-wrap"><div class="gantt-bar" style="left: 46%; width: 27%;">8d</div></div></div>
      <div class="gantt-row"><div class="gantt-label">Fase 4 — Pagamento + Frete</div><div class="gantt-bar-wrap"><div class="gantt-bar" style="left: 73%; width: 13%; background: linear-gradient(90deg, var(--cyan), var(--gold-light));">4d</div></div></div>
      <div class="gantt-row"><div class="gantt-label">Fase 5 — Homologacao</div><div class="gantt-bar-wrap"><div class="gantt-bar" style="left: 86%; width: 14%;">4d</div></div></div>
"""

ROI = (
    "Loja profissional no ar em 30 dias uteis, com identidade visual propria, ecommerce integrado e operacao "
    "automatizada. Cada pedido roda sozinho do clique do cliente ate o fabricante despachar, sem digitacao manual "
    "e sem cliente descobrindo terceiro. O resultado e tempo livre pra Beatriz focar no que cresce o negocio: "
    "trafego, conteudo e relacionamento. A regra de frete gratis condicional aumenta ticket medio na conversao "
    "e a recuperacao de carrinho devolve receita que seria perdida."
)

REFERENCIAS = """
      <p>A Agencia Climb Digital ja entregou estruturacao tecnica completa para clientes em moda, beleza, saude, infoprodutos e radiestesia. Nosso time combina desenvolvimento, design, operacao e copy sob um mesmo guarda-chuva.</p>
      <p style="margin-top: 12px;">Time alocado no projeto Sonho &amp; Purpurinas: <strong>Juliana (identidade visual e design)</strong>, <strong>Paulo (integracoes e desenvolvimento)</strong>, <strong>Jonathan (conteudo e copy)</strong> e <strong>Rafael (gestao do projeto)</strong>.</p>
"""

# Pricing reformulado: 3 cards (Setup, Suporte, Trafego)
NEW_PRICING_GRID = '''<div class="pricing-grid">
      <div class="price-card featured">
        <div class="price-tag">Setup Completo</div>
        <div class="price-value">R$ 7.000 <small>40% sinal + 30% identidade aprovada + 30% entrega</small></div>
        <p>Pacote unico, fechado, ponta a ponta. Em ate 30 dias uteis apos aprovacao da identidade, a loja esta no ar com tudo configurado, escrito e testado.</p>
        <ul class="bullets" style="margin-top: 14px;">
          <li>Identidade visual completa (logo, paleta, tipografia, conceito)</li>
          <li>Loja Nuvemshop com tema customizado</li>
          <li>Bling Cobalto com 3 depositos e remetente fixo</li>
          <li>Cadastro de 20 produtos com variacoes</li>
          <li>Appmax + backup MP/PagSeguro</li>
          <li>Melhor Envio com regras de frete</li>
          <li>Conteudo escrito (sobre, FAQ, politicas, descricoes)</li>
          <li>SEO on-page completo</li>
          <li>WhatsApp + botao flutuante</li>
          <li>Pop-up de captura + recuperacao de carrinho</li>
          <li>Homologacao ponta a ponta</li>
        </ul>
      </div>

      <div class="price-card">
        <div class="price-tag">Suporte Mensal (opcional)</div>
        <div class="price-value">R$ 290 <small>por mes, sem fidelidade</small></div>
        <p>Pra quem quer suporte recorrente apos a entrega. Mantemos o ecossistema rodando sem voce ter que se preocupar com a parte tecnica.</p>
        <ul class="bullets" style="margin-top: 14px;">
          <li>3 horas tecnicas inclusas por mes</li>
          <li>Horas excedentes: R$ 100/h</li>
          <li>Prioridade no atendimento (resposta em ate 24h uteis)</li>
          <li>Ajustes de configuracao quando precisar</li>
          <li>Acompanhamento mensal de metricas basicas</li>
        </ul>
      </div>
    </div>

    <h3 style="margin-top: 36px;">Trafego pago <em style="color: var(--text-dim); font-size: 16px;">(aba separada, opcional)</em></h3>
    <div class="glass-card">
      <p>Quando voce decidir abrir torneira de trafego pago, este e o pacote pra acelerar resultado. Indicado apos a loja estar no ar e validada.</p>
      <div class="grid grid-3" style="margin-top: 18px;">
        <div class="metric"><div class="metric-value">R$ 1.200</div><div class="metric-label">Setup unico</div></div>
        <div class="metric"><div class="metric-value">R$ 1.500</div><div class="metric-label">Gestao mensal</div></div>
        <div class="metric"><div class="metric-value">R$ 1.000</div><div class="metric-label">Verba minima sugerida</div></div>
      </div>
      <p style="margin-top: 16px;"><strong>Setup inclui:</strong> Pixel Meta, GA4, Google Tag Manager, Google Merchant Center, Meta Catalog e configuracao completa de conversoes.</p>
      <p style="margin-top: 8px;"><strong>Gestao mensal inclui:</strong> campanhas Meta Ads e Google Ads, otimizacao continua, relatorio mensal.</p>
      <p style="margin-top: 8px;"><strong>Contrato minimo:</strong> 3 meses (tempo necessario pra calibrar campanhas e enxergar retorno real).</p>
    </div>

    <h3 style="margin-top: 36px;">Funcionalidades extras <em style="color: var(--text-dim); font-size: 16px;">(sob consulta)</em></h3>
    <div class="glass-card">
      <p>Os itens abaixo nao estao inclusos no setup principal. Podem ser contratados separadamente quando fizer sentido pra fase do negocio:</p>
      <ul class="bullets" style="margin-top: 10px;">
        <li>Blog integrado a loja</li>
        <li>Area do cliente customizada</li>
        <li>Programa de fidelidade</li>
        <li>Cupons avancados (multi-uso, segmentado, com regras)</li>
        <li>Wishlist (lista de desejos)</li>
      </ul>
      <p style="margin-top: 12px; font-size: 14.5px;">Consulta valores quando quiser adicionar.</p>
    </div>

    <h3 style="margin-top: 36px;">Nao incluso</h3>
    <div class="glass-card">
      <ul class="bullets">
        <li>Apps pagos da Nuvemshop (mensalidades de apps especificos ficam por conta da Sonho &amp; Purpurinas)</li>
        <li>Producao de fotografia de produto (a Sonho &amp; Purpurinas fornece material; tratamento e cadastro avulso podem ser cotados)</li>
        <li>Treinamento operacional (documentacao publica da Nuvemshop e Bling supre)</li>
        <li>Google Merchant Center e Meta Catalog isolados (so disponiveis dentro do pacote de trafego)</li>
      </ul>
    </div>'''

# Carrega e substitui placeholders
html = TEMPLATE.read_text()

SUBS = {
    "{{NOME_CLIENTE}}": "Sonho & Purpurinas",
    "{{PRIMEIRO_NOME}}": "Beatriz",
    "{{NICHO}}": "moda intima em dropshipping",
    "{{ANO}}": "2026",
    "{{CONTEXTO_CLIENTE}}": CONTEXTO,
    "{{METRICAS_HTML}}": METRICAS,
    "{{DIAGNOSTICO_FUNCIONA}}": DIAG_FUNCIONA,
    "{{DIAGNOSTICO_PRECISA_MUDAR}}": DIAG_MUDAR,
    "{{SOLUCAO_HTML}}": SOLUCAO,
    "{{ESCADA_VALOR_HTML}}": ESCADA_VALOR,
    "{{TAB_ESPECIFICA_TITULO}}": TAB_TIT,
    "{{TAB_ESPECIFICA_HTML}}": TAB_HTML,
    "{{ENTREGAVEIS_HTML}}": ENTREGAVEIS,
    "{{FASES_HTML}}": FASES,
    "{{GANTT_HTML}}": GANTT,
    "{{ROI_ESTIMADO}}": ROI,
    "{{REFERENCIAS_HTML}}": REFERENCIAS,
    "{{VALIDADE_DATA}}": "10/06/2026",
}

for k, v in SUBS.items():
    html = html.replace(k, v)

# Reescreve introducao da tab Investimento
html = html.replace(
    "Dois modelos disponiveis. O melhor depende do quanto voce quer aprender (mentoria) versus quanto voce quer terceirizar (consultoria).",
    "Setup fechado em pacote unico, com opcao de suporte recorrente apos a entrega e aba separada de trafego pago quando fizer sentido escalar.",
)

# Substitui o bloco pricing-grid inteiro com balanceamento de divs
start = html.find('<div class="pricing-grid">')
if start == -1:
    raise SystemExit("ERRO: nao encontrei pricing-grid no template")

i = start
depth = 0
end = -1
while i < len(html):
    if html[i:i+5] == '<div ' or html[i:i+5] == '<div>':
        depth += 1
        i += 4
    elif html[i:i+6] == '</div>':
        depth -= 1
        i += 6
        if depth == 0:
            end = i
            break
    else:
        i += 1

if end == -1:
    raise SystemExit("ERRO: nao balanceei pricing-grid")

html = html[:start] + NEW_PRICING_GRID + html[end:]

OUT.write_text(html)
print(f"OK: {OUT} ({len(html)} chars)")
