import re, os

BASE = r"c:/Users/Rafael/Desktop/centro 03/servicos"

IMAGES = [
    ("Refra%C3%A7%C3%A3o%20Ocular.png", "Refra%C3%A7%C3%A3o%20Ocular%20mobile.png"),
    ("Biomicroscopia.png", "%20Biomicroscopia%20mobile.png"),
    ("Tonometry.png", "Tonometry%20mobile.png"),
    ("Despiste%20Visual.png", "Despiste%20Visual%20mobile.png"),
    ("Acompanhamento%20Cl%C3%ADnico.png", "Acompanhamento%20Cl%C3%ADnico%20mobile.png"),
]

def make_slider(items):
    html = '      <div class="mv-slider">\n'
    for i, (title, desc) in enumerate(items):
        img_d, img_m = IMAGES[i]
        active = ' mv-active' if i == 0 else ''
        html += f"""
        <div class="mv-item{active}" tabindex="0" role="button" aria-label="{title}">
          <div class="mv-face" style="background-image:url('../assets/images/Consultas Geral/{img_d}')" data-bg-mobile="url('../assets/images/Consultas Geral/{img_m}')">
            <span class="mv-face__title">{title}</span>
            <span class="mv-face__arrow material-symbols-outlined" aria-hidden="true">expand_more</span>
          </div>
          <div class="mv-panel">
            <div class="mv-panel__inner">
              <span class="mv-panel__name">{title}</span>
              <p class="mv-panel__desc">{desc}</p>
            </div>
          </div>
        </div>
"""
    html += '      </div><!-- /.mv-slider -->\n'
    return html

def make_section(eyebrow, h2, desc, items):
    slider = make_slider(items)
    return f"""  <section class="sp-section sp-section--white">
    <div class="sp-container">
      <div class="mv-layout">
        <div class="mv-layout__text">
          <span class="sp-section__eyebrow">{eyebrow}</span>
          <h2 class="sp-section__title">{h2}</h2>
          <p class="sp-section__desc">{desc}</p>
        </div>
{slider}
      </div><!-- /.mv-layout -->
    </div>
  </section>"""

MOBILE_SCRIPT = """  <script>
    const mvItems = document.querySelectorAll('.mv-item');
    document.querySelectorAll('.mv-face[data-bg-mobile]').forEach(face => {
      face.dataset.bgDesktop = face.style.backgroundImage;
    });
    function applyMobileImagesFinal() {
      const isMobile = window.innerWidth <= 768;
      document.querySelectorAll('.mv-face[data-bg-mobile]').forEach(face => {
        face.style.backgroundImage = isMobile ? face.dataset.bgMobile : face.dataset.bgDesktop;
      });
    }
    applyMobileImagesFinal();
    window.addEventListener('resize', applyMobileImagesFinal);
    mvItems.forEach(item => {
      item.addEventListener('click', () => {
        if (window.innerWidth > 768) return;
        const isActive = item.classList.contains('mv-active');
        mvItems.forEach(i => i.classList.remove('mv-active'));
        if (!isActive) item.classList.add('mv-active');
      });
    });
  </script>"""

PAGES = {
    "consulta-oculoplastica": {
        "eyebrow": "O Que Inclui",
        "h2": "Pálpebras e Vias Lacrimais",
        "desc": "Avaliação especializada de alterações palpebrais e disfunção do sistema lacrimal, com orientação para o tratamento cirúrgico mais adequado a cada caso.",
        "items": [
            ("Avaliação Palpebral", "Análise das pálpebras superiores e inferiores quanto a excesso de pele, ptose e alterações de posicionamento."),
            ("Vias Lacrimais", "Estudo da permeabilidade do sistema lacrimal e identificação de obstruções causadoras de lacrimejo excessivo."),
            ("Blefaroplastia", "Orientação para remoção cirúrgica de excesso de pele e bolsas de gordura nas pálpebras."),
            ("Correção Palpebral", "Tratamento de ectrópio, entrópio, ptose e outras alterações do bordo palpebral."),
            ("Plano Cirúrgico", "Definição personalizada do procedimento mais adequado a cada caso clínico."),
        ]
    },
    "consulta-catarata": {
        "eyebrow": "O Que Inclui",
        "h2": "Diagnóstico e Planeamento da Catarata",
        "desc": "Utilizamos equipamento de alta precisão para estadiar a catarata e planear a cirurgia com o cálculo exacto da lente intraocular ideal para cada doente.",
        "items": [
            ("Biomicroscopia", "Avaliação do grau de opacidade do cristalino e estadiamento detalhado da catarata."),
            ("Biometria Óptica", "Cálculo preciso da lente intraocular por IOLMaster 500 (Carl Zeiss Meditec)."),
            ("Topografia Corneana", "Avaliação da qualidade óptica com Pentacam para planeamento cirúrgico personalizado."),
            ("Acuidade Visual", "Determinação da melhor visão corrigida antes e previsão do resultado pós-cirúrgico."),
            ("Orientação Cirúrgica", "Escolha da lente intraocular e técnica de facoemulsificação mais adequadas."),
        ]
    },
    "consulta-cornea": {
        "eyebrow": "O Que Inclui",
        "h2": "Avaliação Especializada da Córnea",
        "desc": "Consulta abrangente que cobre todas as patologias corneanas, desde o ceratocone às infecções e traumatismos, com exames imagiológicos de última geração.",
        "items": [
            ("Topografia Corneana", "Mapeamento detalhado da curvatura corneana para despiste de ceratocone e ectasias."),
            ("Paquimetria", "Medição da espessura corneana para avaliação da progressão e elegibilidade cirúrgica."),
            ("Biomicroscopia", "Exame da superfície corneana em busca de ceratite, úlceras ou cicatrizes."),
            ("Avaliação Refrativa", "Estudo do astigmatismo irregular e o seu impacto na acuidade visual."),
            ("Plano Terapêutico", "Orientação para lentes de contacto, crosslinking, segmentos de anel ou transplante."),
        ]
    },
    "consulta-diabetes": {
        "eyebrow": "O Que Inclui",
        "h2": "Rastreio da Retinopatia Diabética",
        "desc": "Avaliação completa da retina para detectar, estadiar e tratar as complicações oculares do diabetes, prevenindo a perda de visão irreversível.",
        "items": [
            ("Fundo Ocular", "Exame da retina com dilatação para detecção e estadiamento da retinopatia diabética."),
            ("OCT Macular", "Tomografia de coerência óptica para avaliação de edema macular e espessura retiniana."),
            ("Angiografia", "Estudo da vasculatura retiniana para detecção de neovasularização e isquémia."),
            ("Estadiamento", "Classificação do grau de retinopatia e definição do protocolo terapêutico."),
            ("Tratamento LASER", "Fotocoagulação e injeções intravítreas de anti-VEGF conforme a evolução clínica."),
        ]
    },
    "consulta-estrabismo": {
        "eyebrow": "O Que Inclui",
        "h2": "Alinhamento Visual em Crianças",
        "desc": "Consulta especializada em estrabismo, ambliopia e patologias lacrimais pediátricas, com abordagens adaptadas à faixa etária de cada criança.",
        "items": [
            ("Avaliação do Desvio", "Medição do ângulo de estrabismo e estudo detalhado da motilidade ocular."),
            ("Acuidade Visual", "Avaliação adaptada à idade da criança, com despiste precoce de ambliopia."),
            ("Visão Binocular", "Estudo da estereoscopia e capacidade de fusão das imagens dos dois olhos."),
            ("Sistema Lacrimal", "Avaliação de obstrução nasolacrimal em bebés com lacrimejo excessivo."),
            ("Plano de Tratamento", "Óculos, penso oclusor, toxina botulínica ou programação de cirurgia corretora."),
        ]
    },
    "consulta-glaucoma": {
        "eyebrow": "O Que Inclui",
        "h2": "Diagnóstico e Monitorização do Glaucoma",
        "desc": "Avaliação completa do nervo óptico, pressão intraocular e campo visual, com tecnologia de última geração para detecção e seguimento do glaucoma.",
        "items": [
            ("Tonometria", "Medição da pressão intraocular para detecção precoce de hipertensão ocular."),
            ("OCT RNFL", "Análise da camada de fibras nervosas retinianas por tomografia de coerência óptica."),
            ("Campimetria", "Mapeamento computorizado do campo visual para avaliação do dano glaucomatoso."),
            ("Gonioscopia", "Avaliação do ângulo da câmara anterior para classificação do tipo de glaucoma."),
            ("Monitorização", "Vigilância regular e ajuste do tratamento hipotensor conforme a progressão."),
        ]
    },
    "blefaroplastia": {
        "eyebrow": "O Que Inclui",
        "h2": "Cirurgia Palpebral Funcional e Estética",
        "desc": "A blefaroplastia combina a vertente funcional e estética, corrigindo a aparência e problemas que afectam a visão e o conforto ocular.",
        "items": [
            ("Avaliação Palpebral", "Análise do excesso de pele, bolsas de gordura, ptose e alterações do bordo palpebral."),
            ("Planeamento Cirúrgico", "Definição personalizada das zonas de intervenção e técnica cirúrgica."),
            ("Blefaroplastia", "Remoção de excesso de pele e gordura com incisões nas pregas naturais das pálpebras."),
            ("Pós-operatório", "Resolução do edema e hematoma em 1-2 semanas; resultado definitivo ao fim de 1 mês."),
            ("Casos Associados", "Tratamento de entrópio, ectrópio, xantelasma e aplicação de toxina botulínica."),
        ]
    },
    "cirurgia-catarata": {
        "eyebrow": "O Que Inclui",
        "h2": "Cirurgia de Catarata Passo a Passo",
        "desc": "A facoemulsificação permite remover a catarata através de uma incisão mínima, sem sutura, com implante imediato de lente intraocular de última geração.",
        "items": [
            ("Facoemulsificação", "Fragmentação e aspiração do cristalino opaco por ultra-sons através de incisão de 2,2 mm."),
            ("Lente Intraocular", "Implante de LIO premium: monofocal, multifocal ou tórica, adaptada a cada doente."),
            ("Sem Internamento", "Cirurgia ambulátória de 15 a 20 minutos, sob anestesia local por colírio."),
            ("Recuperação Rápida", "Visão melhorada nas primeiras 24 horas; regresso às actividades em 2 a 3 dias."),
            ("Seguimento", "Consultas de controlo às 24 horas, 1 semana e 1 mês após a cirurgia."),
        ]
    },
    "cirurgia-refrativa": {
        "eyebrow": "O Que Inclui",
        "h2": "Técnicas de Correção Refrativa",
        "desc": "Oferecemos as técnicas mais modernas de cirurgia refrativa, individualizadas para cada doente após avaliação criteriosa da córnea e do estado refrativo.",
        "items": [
            ("LASIK Femtosegundo", "Criação de flap corneano com laser femtosegundo e remodelagão do estroma por excimer."),
            ("PRK", "Ablação de superfície para córneas finas ou com contraindicação ao flap corneano."),
            ("Avaliação Pré-op", "Topografia, paquimetria e aberrometria completas para confirmar elegibilidade."),
            ("Lente Fáquica", "Implante de LIO fáquica para altos graus refractivos não elegíveis para laser."),
            ("Recuperação", "Regresso às actividades no dia seguinte com LASIK; uma semana com PRK."),
        ]
    },
    "dacriocistorrinostomia": {
        "eyebrow": "O Que Inclui",
        "h2": "Desobstrução das Vias Lacrimais",
        "desc": "A DCR cria uma nova comunicação entre o saco lacrimal e as fossas nasais, restabelecendo a drenagem das lágrimas e resolvendo as infecções recorrentes.",
        "items": [
            ("Diagnóstico", "Avaliação da permeabilidade das vias lacrimais por irrigação e dacriocistografia."),
            ("Técnica Externa", "Abordagem cutânea pela base do nariz para criação de nova via lacrimal."),
            ("Técnica Endoscópica", "Abordagem intranasal sem cicatriz externa, com alta taxa de sucesso (85%)."),
            ("Sonda de Silicone", "Manutenção do novo canal aberto durante 1 a 3 meses de cicatrização."),
            ("Plugs Lacrimais", "Alternativa conservadora para olho seco grave, colocados sob anestesia tópica."),
        ]
    },
}

PATTERN = re.compile(
    r'  <section class="sp-section sp-section--white">.*?</section>',
    re.DOTALL
)
SCRIPT_PATTERN = re.compile(r'<script src="\.\./assets/js/main\.js"></script>')

updated = []
for slug, data in PAGES.items():
    fpath = os.path.join(BASE, f"{slug}.html")
    if not os.path.exists(fpath):
        print(f"SKIP (not found): {slug}.html")
        continue
    with open(fpath, 'r', encoding='utf-8') as f:
        content = f.read()

    new_section = make_section(data["eyebrow"], data["h2"], data["desc"], data["items"])
    new_content = PATTERN.sub(new_section, content, count=1)

    if 'applyMobileImagesFinal' not in new_content:
        new_content = SCRIPT_PATTERN.sub(
            f'<script src="../assets/js/main.js"></script>\n{MOBILE_SCRIPT}',
            new_content, count=1
        )

    with open(fpath, 'w', encoding='utf-8') as f:
        f.write(new_content)
    updated.append(slug)
    print(f"OK: {slug}.html")

print(f"\nUpdated {len(updated)} files.")
