from docx import Document
from docx.shared import Pt, RGBColor, Inches, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.style import WD_STYLE_TYPE
from docx.oxml.ns import qn
from docx.oxml import OxmlElement
import datetime

doc = Document()

# --- Page margins ---
section = doc.sections[0]
section.top_margin = Cm(2.5)
section.bottom_margin = Cm(2.5)
section.left_margin = Cm(3)
section.right_margin = Cm(3)

# --- Helper functions ---

def set_font(run, name="Calibri", size=11, bold=False, italic=False, color=None):
    run.font.name = name
    run.font.size = Pt(size)
    run.font.bold = bold
    run.font.italic = italic
    if color:
        run.font.color.rgb = RGBColor(*color)

def add_heading(doc, text, level=1, color=(31, 73, 125)):
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.LEFT
    run = p.add_run(text)
    if level == 1:
        set_font(run, size=16, bold=True, color=color)
    elif level == 2:
        set_font(run, size=13, bold=True, color=color)
    elif level == 3:
        set_font(run, size=11, bold=True, color=color)
    p.paragraph_format.space_before = Pt(14)
    p.paragraph_format.space_after = Pt(4)
    return p

def add_body(doc, text, bold=False, italic=False, color=None, size=11, indent=False):
    p = doc.add_paragraph()
    run = p.add_run(text)
    set_font(run, size=size, bold=bold, italic=italic, color=color)
    p.paragraph_format.space_before = Pt(2)
    p.paragraph_format.space_after = Pt(4)
    if indent:
        p.paragraph_format.left_indent = Cm(0.8)
    return p

def add_bullet(doc, text, level=0):
    p = doc.add_paragraph(style="List Bullet")
    run = p.add_run(text)
    set_font(run, size=11)
    p.paragraph_format.space_before = Pt(1)
    p.paragraph_format.space_after = Pt(2)
    p.paragraph_format.left_indent = Cm(0.8 + level * 0.5)
    return p

def add_divider(doc):
    p = doc.add_paragraph()
    p.paragraph_format.space_before = Pt(4)
    p.paragraph_format.space_after = Pt(4)
    run = p.add_run("_" * 95)
    set_font(run, size=9, color=(180, 180, 180))

def add_label_value(doc, label, value):
    p = doc.add_paragraph()
    r1 = p.add_run(label + ": ")
    set_font(r1, bold=True, size=11)
    r2 = p.add_run(value)
    set_font(r2, size=11)
    p.paragraph_format.space_before = Pt(1)
    p.paragraph_format.space_after = Pt(3)
    return p

def add_strategy_block(doc, title, tag, pros, cons, recomendacao, nota=None):
    add_heading(doc, title, level=2)
    if nota:
        add_body(doc, nota, italic=True, color=(100, 100, 100), size=10)
    add_heading(doc, "Pros", level=3, color=(34, 120, 40))
    for item in pros:
        add_bullet(doc, item)
    add_heading(doc, "Contras", level=3, color=(160, 30, 30))
    for item in cons:
        add_bullet(doc, item)
    p = doc.add_paragraph()
    r1 = p.add_run("Recomendacao: ")
    set_font(r1, bold=True, size=11, color=(31, 73, 125))
    r2 = p.add_run(recomendacao)
    set_font(r2, size=11)
    p.paragraph_format.space_before = Pt(4)
    p.paragraph_format.space_after = Pt(6)
    p_tag = doc.add_paragraph()
    r_tag = p_tag.add_run(tag)
    set_font(r_tag, bold=True, size=10, color=(200, 120, 0) if "ALTA" in tag else (34, 120, 40) if "MEDIA" in tag else (100, 100, 100))

# ==================== CAPA ====================

p_title = doc.add_paragraph()
p_title.alignment = WD_ALIGN_PARAGRAPH.CENTER
run_title = p_title.add_run("ESTRATEGIA DE VENDAS - EVENTO SANTA FE")
set_font(run_title, size=20, bold=True, color=(31, 73, 125))

p_sub = doc.add_paragraph()
p_sub.alignment = WD_ALIGN_PARAGRAPH.CENTER
run_sub = p_sub.add_run("Cloud PhotoRF - PX3 Lab")
set_font(run_sub, size=14, bold=False, color=(80, 80, 80))

p_date = doc.add_paragraph()
p_date.alignment = WD_ALIGN_PARAGRAPH.CENTER
run_date = p_date.add_run(f"Versao 2 | {datetime.date.today().strftime('%d/%m/%Y')}")
set_font(run_date, size=11, italic=True, color=(130, 130, 130))

doc.add_paragraph()

add_label_value(doc, "Evento", "Feirinha / Stand PX3 Lab - Santa Fe, Parana")
add_label_value(doc, "Publico presente", "160 empresas de fotografia de formatura")
add_label_value(doc, "Produto", "Cloud PhotoRF - plataforma de gestao e entrega digital de fotos")
add_label_value(doc, "Elaborado por", "Davi (SDR) - Agencia Climb Digital")

add_divider(doc)

# ==================== 1. RESUMO EXECUTIVO ====================

add_heading(doc, "1. RESUMO EXECUTIVO", level=1)

add_body(doc, (
    "O evento de Santa Fe reune 160 empresas especializadas em fotografia de formatura "
    "- um nicho que enfrenta um gargalo operacional critico: mobilizar o aluno formando "
    "e sua familia para comparecer ao estudio no dia do Family Day. Esse desafio impacta "
    "diretamente a qualidade do album final e, consequentemente, a reputacao da empresa fotografa."
))
add_body(doc, (
    "O Cloud PhotoRF resolve parte central dessa equacao ao profissionalizar a entrega das "
    "fotos, organizar o fluxo de agendamento e elevar a percepcao de valor da empresa "
    "perante o cliente final. O evento representa uma janela de aquisicao concentrada: "
    "160 decisores em um mesmo local, com dor identificada e abertura para solucoes."
))
add_body(doc, (
    "Este documento estrutura as estrategias para converter o maximo de contatos em "
    "usuarios ativos do Cloud PhotoRF, com foco nos proximos 10 dias apos o evento."
))

add_divider(doc)

# ==================== 2. PERFIL DO PUBLICO ====================

add_heading(doc, "2. PERFIL DO PUBLICO", level=1)

add_body(doc, "Empresas de fotografia especializadas em formatura, presentes no evento de Santa Fe:", bold=True)
add_bullet(doc, "Segmento: fotografia profissional de formatura (ensaio, Family Day, cerimonia, festa)")
add_bullet(doc, "Porte: pequenas e medias empresas, tipicamente com 2 a 15 colaboradores")
add_bullet(doc, "Perfil de decisao: fundador ou socio-fotografo e/ou gerente comercial")
add_bullet(doc, "Volume de operacao: multiplas turmas de formatura por ano, dezenas a centenas de alunos por turma")
add_bullet(doc, "Dor central: dificuldade de mobilizar o aluno para trazer a familia ao estudio (Family Day)")
add_bullet(doc, "Maturidade digital: variada - de empresas que usam apenas WhatsApp a outras com CRM e automacao")

doc.add_paragraph()
add_heading(doc, "Estrategias que essas empresas ja usam hoje:", level=3)
add_bullet(doc, "Grupos de WhatsApp com pre-lancamento ('daqui uma semana abrimos agendamento')")
add_bullet(doc, "Link de calendario para agendamento autonomo pelo aluno")
add_bullet(doc, "Disparos em massa via WhatsApp")
add_bullet(doc, "Nota: nenhuma dessas tacticas resolve o problema de engajamento do aluno - apenas notificam. O Cloud PhotoRF vai alem, diferenciando a experiencia.")

add_divider(doc)

# ==================== 3. DORES QUE O CLOUD PHOTORF RESOLVE ====================

add_heading(doc, "3. DORES QUE O CLOUD PHOTORF RESOLVE", level=1)

dores = [
    (
        "Falta de profissionalismo na entrega das fotos",
        "Muitas empresas ainda entregam fotos via link generico do Google Drive ou pen drive. "
        "O Cloud PhotoRF oferece uma plataforma branded, que valoriza o trabalho do fotografo."
    ),
    (
        "Desorganizacao no fluxo de agendamento do Family Day",
        "Sem uma ferramenta centralizada, o controle de quem agendou, quem confirmou e quem faltou "
        "vira um caos de planilhas e mensagens. O Cloud PhotoRF organiza tudo em um unico ambiente."
    ),
    (
        "Baixa percepcao de valor pelo aluno/familia",
        "Quando a entrega das fotos e profissional e digital, o aluno percebe mais valor - o que "
        "facilita o upsell de albuns, pacotes premium e recomendacoes."
    ),
    (
        "Dificuldade de mobilizar a familia para o estudio",
        "Ao mostrar ao aluno um sistema moderno de entrega de fotos, a empresa de fotografia "
        "aumenta o interesse e o senso de exclusividade - o que ajuda a convencer a familia a comparecer."
    ),
    (
        "Retrabalho operacional",
        "Sem plataforma, a equipe perde horas reenviando fotos, respondendo 'cadê minha foto?' e "
        "gerenciando reclamacoes. O Cloud PhotoRF reduz esse atrito operacional."
    ),
]

for titulo, descricao in dores:
    add_heading(doc, titulo, level=2)
    add_body(doc, descricao, indent=True)

add_divider(doc)

# ==================== 4. ESTRATEGIAS PROPOSTAS ====================

add_heading(doc, "4. ESTRATEGIAS PROPOSTAS", level=1)

add_body(doc, (
    "A seguir, cada estrategia e avaliada com pros, contras e recomendacao de execucao. "
    "As duas primeiras vieram das ideias do Vinicio (desenvolvedor). As tres seguintes sao "
    "novas propostas especificas para este nicho."
))

# --- Estrategia 1 ---
add_strategy_block(
    doc,
    title="Estrategia 1 - Beta Gratuito de 30 Dias (Ideia Vinicio)",
    tag="PRIORIDADE: ALTA - Recomendado como carro-chefe do evento",
    pros=[
        "Elimina a barreira de entrada: sem custo, a adesao e maxima",
        "160 empresas usando o produto ao mesmo tempo gera validacao em escala",
        "Apos 30 dias, o custo de abandono (perda dos dados, reconfigurar tudo) e alto - cria inertia de continuidade",
        "Gera depoimentos e casos reais para usar como prova social em vendas futuras",
        "Posiciona o Cloud PhotoRF como produto maduro e confiante o suficiente para ser testado sem risco",
    ],
    cons=[
        "Risco de nao converter: empresas que usam gratis nem sempre pagam depois",
        "Carga de suporte pode aumentar com 160 usuarios novos ao mesmo tempo",
        "Sem definir o preco da continuidade claramente, o choque pos-beta pode gerar cancelamentos",
    ],
    recomendacao=(
        "Executar como estrategia principal, mas com duas condicoes: "
        "(1) deixar claro desde o inicio qual sera o preco pos-beta e o desconto de continuidade para quem entrou no evento; "
        "(2) criar um onboarding minimo para que as empresas realmente ativem o produto nos primeiros 7 dias - "
        "quem nao ativa nao converte."
    ),
    nota="Fonte: Vinicio (desenvolvedor). Avaliacao Davi/SDR abaixo."
)

# --- Estrategia 2 ---
add_strategy_block(
    doc,
    title="Estrategia 2 - Cashback de 20-30% em Creditos (Ideia Vinicio)",
    tag="PRIORIDADE: MEDIA - Bom complemento, nao deve ser o argumento principal",
    pros=[
        "Cria urgencia imediata: janela de 10 dias apos o evento",
        "Incentiva compra de volume (creditos) ja no calor do evento",
        "Simples de comunicar e entender",
    ],
    cons=[
        "Funciona melhor para quem JA conhece o produto - nao e bom argumento de entrada para quem nunca usou",
        "Percentual de 20-30% pode parecer alto demais ou baixo demais dependendo do valor dos creditos",
        "Nao resolve a duvida de quem nao sabe se o produto serve para ele",
    ],
    recomendacao=(
        "Usar como argumento de fechamento para quem ja se interessou pelo beta gratuito. "
        "Sequencia ideal: (1) cadastro no beta -> (2) nos 10 dias seguintes, oferta de cashback para "
        "quem quiser antecipar a compra de creditos. Evitar usar cashback como primeiro argumento."
    ),
    nota="Fonte: Vinicio (desenvolvedor). Avaliacao Davi/SDR abaixo."
)

# --- Estrategia 3 ---
add_strategy_block(
    doc,
    title="Estrategia 3 - Kit Convocacao Family Day (Nova - SDR)",
    tag="PRIORIDADE: ALTA - Atacar diretamente a dor #1 do publico",
    pros=[
        "Ataca a maior dor do publico: convencer o aluno a trazer a familia",
        "Entregavel concreto e imediato - nao e so software, e solucao",
        "Diferencia o Cloud PhotoRF de concorrentes que vendem apenas 'galeria de fotos'",
        "Pode ser entregue no proprio stand (ex: PDF impresso ou link para download)",
    ],
    cons=[
        "Exige producao previa do kit (templates de mensagem, modelo de convocacao)",
        "Se o kit nao for de qualidade, pode prejudicar a imagem do produto",
    ],
    recomendacao=(
        "Montar um 'Kit Family Day' com: (1) modelo de mensagem de WhatsApp para o aluno convocar a familia, "
        "(2) template de pagina de agendamento integrado ao Cloud PhotoRF, "
        "(3) checklist operacional do dia do Family Day. "
        "Entregar como bonus exclusivo para empresas que se cadastrarem no evento. "
        "Isso posiciona o Cloud PhotoRF como parceiro de operacao, nao so ferramenta de entrega."
    )
)

# --- Estrategia 4 ---
add_strategy_block(
    doc,
    title="Estrategia 4 - Demonstracao ao Vivo no Stand (Nova - SDR)",
    tag="PRIORIDADE: ALTA - Confianca se constroi vendo funcionar",
    pros=[
        "Elimina a desconfianca de quem nunca viu o produto",
        "Permite que o visitante veja o fluxo completo em 3 minutos",
        "Gera conversas qualificadas: quem fica para ver a demo ja tem interesse real",
        "Nao tem custo adicional alem do tempo do operador",
    ],
    cons=[
        "Precisa de um demonstrador treinado e de conexao de internet estavel no stand",
        "Pode criar fila se a demo for longa - manter em no maximo 3 minutos",
    ],
    recomendacao=(
        "Preparar uma demo roteirizada de 3 minutos simulando o fluxo do Family Day: "
        "(1) empresa cadastra turma -> (2) aluno recebe link de agendamento -> (3) fotos sao entregues na plataforma. "
        "Usar um celular ou tablet como 'visao do aluno' e um notebook como 'painel da empresa'. "
        "Rodar a demo de forma continua no stand, sem precisar esperar o visitante pedir."
    )
)

# --- Estrategia 5 ---
add_strategy_block(
    doc,
    title="Estrategia 5 - Programa de Indicacao Pos-Evento (Nova - SDR)",
    tag="PRIORIDADE: MEDIA - Acelerador de crescimento para as semanas seguintes",
    pros=[
        "Cada empresa presente pode indicar outras que nao vieram ao evento",
        "Crescimento organico com custo baixo",
        "Cria senso de comunidade entre usuarios do Cloud PhotoRF",
        "Pode ser ativado durante os 30 dias de beta gratuito",
    ],
    cons=[
        "Retorno e indireto e demorado - nao gera receita imediata",
        "Precisa de mecanismo de rastreamento de indicacoes",
    ],
    recomendacao=(
        "Oferecer extensao de 15 dias de beta gratuito para cada empresa indicada que se cadastrar. "
        "O indicador tambem ganha os 15 dias extras. "
        "Comunicar no stand e reforcar nos follow-ups pos-evento."
    )
)

add_divider(doc)

# ==================== 5. PITCH DE 30-60 SEGUNDOS ====================

add_heading(doc, "5. PITCH DE 30-60 SEGUNDOS (Abordagem no Stand)", level=1)

add_body(doc, "Contexto de uso:", bold=True)
add_body(doc, (
    "Usar quando o visitante para no stand ou quando a equipe aborda alguem no corredor. "
    "O pitch e orientado ao Family Day - a dor que todos no evento conhecem."
))

doc.add_paragraph()
add_heading(doc, "VERSAO 30 SEGUNDOS (abordagem rapida)", level=2)

add_body(doc, (
    '"Voce trabalha com formatura? Entao voce sabe o drama do Family Day - '
    'convencer o aluno a trazer a familia pro estudio e quase uma missao impossivel. '
    'O Cloud PhotoRF nao resolve so a entrega de fotos - ele profissionaliza o processo '
    'inteiro, do agendamento ate a galeria final. O aluno ve uma plataforma de verdade, '
    'nao um link do Drive. Isso muda a percepcao dele - e da familia. '
    'Voce quer ver funcionando agora? Leva dois minutos."'
), italic=True, indent=True)

doc.add_paragraph()
add_heading(doc, "VERSAO 60 SEGUNDOS (visitante que parou no stand)", level=2)

add_body(doc, (
    '"Me faz uma pergunta: qual e o maior trabalho que voce tem no Family Day? '
    '[pausa para o visitante responder] '
    'A maioria das empresas que a gente conversa diz que e justamente isso - '
    'mobilizar o aluno para trazer os pais, irmaos, toda a familia. '
    'E af voce manda WhatsApp, manda lembrete, cria grupo... e mesmo assim metade nao aparece. '
    'O Cloud PhotoRF nao vai resolver o comportamento humano, mas ele muda o jogo em dois pontos: '
    'primeiro, quando o aluno ve que vai receber as fotos numa plataforma profissional - nao num link generico - '
    'ele começa a dar mais valor ao processo. Segundo, o agendamento fica organizado em um lugar so, '
    'sem aquela confusao de planilha e WhatsApp ao mesmo tempo. '
    'Hoje voce sai com 30 dias gratuitos pra testar com uma turma real. Sem cartao, sem compromisso. '
    'Fecha um cadastro aqui agora?"'
), italic=True, indent=True)

doc.add_paragraph()
add_body(doc, "Dicas de execucao:", bold=True)
add_bullet(doc, "Sempre comecar com uma pergunta - nao com apresentacao do produto")
add_bullet(doc, "Deixar o visitante falar antes de apresentar a solucao (SPIN: Situacao -> Problema)")
add_bullet(doc, "Nao mencionar preco no primeiro contato - focar no beta gratuito")
add_bullet(doc, "Ter tablet com demo ativa para mostrar imediatamente apos o pitch")
add_bullet(doc, "Capturar nome, WhatsApp e nome da empresa antes que o visitante saia do stand")

add_divider(doc)

# ==================== 6. SEQUENCIA DE FOLLOW-UP POS-EVENTO ====================

add_heading(doc, "6. SEQUENCIA DE FOLLOW-UP POS-EVENTO (10 dias)", level=1)

add_body(doc, (
    "Para cada empresa que se cadastrou no beta ou demonstrou interesse no evento, "
    "seguir este fluxo de mensagens via WhatsApp. Tom: direto, sem ser spam. "
    "Maximo uma mensagem por dia, nos dias indicados."
))

followups = [
    (
        "DIA 1 (mesmo dia do evento ou manha seguinte)",
        "Confirmacao de cadastro + proximos passos",
        '"Oi [Nome], aqui e o [seu nome] da PX3 Lab. Foi um prazer te conhecer em Santa Fe! '
        'Seu acesso ao Cloud PhotoRF ta ativo. Aqui esta o link pra voce entrar agora: [link]. '
        'Se precisar de ajuda pra configurar a primeira turma, me chama aqui. Qualquer coisa, to disponivel."'
    ),
    (
        "DIA 3",
        "Checkin de ativacao (quem nao acessou ainda)",
        '"Oi [Nome], voce conseguiu acessar o Cloud PhotoRF? Se nao chegou o email de acesso, me fala que resolvo agora. '
        'Tem empresa aqui ja usando pra uma turma de Family Day esta semana - posso te mostrar como configurou."'
    ),
    (
        "DIA 5",
        "Caso de uso / prova social",
        '"[Nome], uma empresa que conheceu o Cloud PhotoRF no mesmo evento que voce ja usou na primeira turma. '
        'O feedback foi [resultado especifico]. Voce ja tem alguma turma de Family Day marcada pro proximo mes? '
        'Vale testar antes da temporada cheia."'
    ),
    (
        "DIA 7",
        "Oferta de cashback (urgencia)",
        '"Oi [Nome], lembra que eu falei do cashback de [X]% pra quem comprar creditos nos primeiros 10 dias? '
        'Faltam 3 dias. Nao e obrigatorio comprar agora - voce ainda tem o beta gratuito. '
        'Mas se ja sabe que vai usar, compensa antecipar. Quer simular quanto voce economizaria?"'
    ),
    (
        "DIA 10",
        "Ultimo aviso de cashback + abertura de conversa",
        '"[Nome], e hoje o ultimo dia do cashback de [X]% em creditos. '
        'Mas independente disso - como esta indo o uso do Cloud PhotoRF? '
        'Alguma duvida ou travamento no processo? Me conta que a gente ajusta."'
    ),
]

for dia, objetivo, mensagem in followups:
    add_heading(doc, dia, level=2)
    add_label_value(doc, "Objetivo", objetivo)
    add_body(doc, "Mensagem sugerida:", bold=True)
    add_body(doc, mensagem, italic=True, indent=True)
    doc.add_paragraph()

add_body(doc, "Observacoes gerais do follow-up:", bold=True)
add_bullet(doc, "Personalizar o nome em todas as mensagens - nunca disparo generico")
add_bullet(doc, "Se a empresa responder e disser que nao tem interesse, parar imediatamente e registrar no CRM")
add_bullet(doc, "Ligar (nao so mensagem) para quem nao responder ate o dia 5 - telefone converte mais que texto")
add_bullet(doc, "Registrar cada interacao no CRM (GHL) com status: Interessado / Em avaliacao / Convertido / Perdido")

add_divider(doc)

# ==================== 7. METRICAS DE SUCESSO ====================

add_heading(doc, "7. METRICAS DE SUCESSO", level=1)

add_body(doc, "Metas primarias (mensurar em ate 10 dias apos o evento):", bold=True)

metricas = [
    ("Cadastros no beta gratuito", "Meta: 80 de 160 empresas (50%)", "Minimo aceitavel: 40 empresas (25%)"),
    ("Taxa de ativacao", "Meta: 60% dos cadastrados acessam e configuram ao menos 1 turma", "Minimo: 30%"),
    ("Conversao em pagantes pos-beta", "Meta: 30% dos ativados convertem em plano pago", "Baseado em benchmarks SaaS B2B"),
    ("Cashback aproveitado", "Meta: 20% dos cadastrados compram creditos dentro de 10 dias", "Minimo: 10%"),
    ("Indicacoes geradas", "Meta: 1 indicacao por cada 5 cadastrados (20 novas empresas fora do evento)", "Bom sinal de NPS alto"),
]

for metrica, meta, obs in metricas:
    p = doc.add_paragraph()
    r1 = p.add_run(metrica + ": ")
    set_font(r1, bold=True, size=11)
    r2 = p.add_run(meta)
    set_font(r2, size=11)
    p.paragraph_format.space_before = Pt(2)
    p.paragraph_format.space_after = Pt(1)
    p.paragraph_format.left_indent = Cm(0.5)
    add_body(doc, obs, italic=True, color=(100, 100, 100), size=10, indent=True)

doc.add_paragraph()
add_body(doc, "KPI de vaidade (nao usar como meta principal):", bold=True)
add_bullet(doc, "Numero de cartoes de visita recebidos no stand - nao indica interesse real")
add_bullet(doc, "Alcance das redes sociais durante o evento - nao correlaciona com cadastros")

add_divider(doc)

# ==================== RODAPE ====================

p_footer = doc.add_paragraph()
p_footer.alignment = WD_ALIGN_PARAGRAPH.CENTER
run_footer = p_footer.add_run(
    f"Agencia Climb Digital | Davi - SDR | Versao 2 | {datetime.date.today().strftime('%d/%m/%Y')}"
)
set_font(run_footer, size=9, italic=True, color=(150, 150, 150))

# ==================== SALVAR ====================

output_path = "/opt/mia/workspace/clientes/px3lab/evento_santa_fe_estrategia_v2.docx"
doc.save(output_path)
print(f"Documento salvo em: {output_path}")
