"""Organização da base por ASSUNTO.

Cada assunto tem artigos; cada artigo junta uma ou mais páginas originais da wiki ("fontes").
Formato das fontes:
    "livro-slug/pagina-slug"          uma página
    "cap:livro-slug/capitulo-slug"    todas as páginas de um capítulo
    f("cancelamento")                 atalho para fluxograma-sac/fluxograma-e-documento-cancelamento
O texto otimizado de um artigo fica em conteudo/<id-do-artigo>.md (se não existir, o site mostra o original).
Páginas que não estiverem em nenhum artigo aparecem no assunto "Outros" (o gerador avisa).
"""

F, R, P, A = "fluxograma-sac", "configuracao-de-roteadores-e-onts", "problemas-comuns", "procedimentos-atendimento"
V, O, I, C = "verificando-problemas-na-conexao-residencial", "oletv", "ixc", "celeti-hub-sva"


def f(s):
    return f"{F}/fluxograma-e-documento-{s}"


def d(s):
    return f"{F}/documento-{s}"


def roteador(cap, dns):
    return [f"cap:{R}/{cap}", f"{P}/{dns}"]


ASSUNTOS = [
    {"id": "atendimento", "nome": "Padrão de atendimento", "icone": "💬", "artigos": [
        ("saudacao", "Saudação e abertura do atendimento", [f"{A}/saudacao", f"{A}/abri-atendimento"]),
        ("ordem-servico", "Abrir atendimento e O.S. (passo padrão)", [f"{A}/ordem-de-servico"]),
        ("confirmacao-dados", "Confirmação de dados do assinante", [f("nova-regra-para-confirmacao-de-dados")]),
        ("treinamento", "Treinamento para novos colaboradores (Qualidade e SAC)", [d("de-treinamento-para-novos-colaboradores-qualidade-e-sac")]),
        ("recepcao", "Recepção", [f("recepcao")]),
        ("transferencia-chat", "Transferência de assinante no chat", [f("transferencia-de-assinante-no-chat")]),
        ("reincidencia", "Reincidência", [f("reincidencia")]),
        ("corporativo", "Clientes corporativos e semicorporativos", [f("corporativo-e-semicorporativo")]),
        ("reagendamento", "Reagendamento", [f("reagendamento")]),
        ("solicitacao-interna", "Solicitação interna para outros departamentos", [f"{P}/solicitacao-interna"]),
        ("procedimentos-fibra-pacpon", "Procedimentos Fibra e PacPon", [f"{A}/procedimentos-fibra", f"{A}/procedimentos-pac-pon"]),
    ]},
    {"id": "cadastro", "nome": "Cadastro, contrato e titularidade", "icone": "🪪", "artigos": [
        ("cadastro", "Cadastro de cliente", [f("cadastro")]),
        ("cadastro-desativados", "Cadastro com assinantes desativados", [f("cadastro-com-assinantes-desativados")]),
        ("analise-credito", "Análise de crédito", [f("analise-de-credito")]),
        ("atrelar-login", "Atrelar login", [f("atrelar-login"), f"{A}/atrelar-login"]),
        ("atrelar-contrato", "Atrelar contrato", [f"{A}/atrelar-contrato"]),
        ("troca-titularidade", "Troca de titularidade", [f("troca-de-titularidade"), f"{A}/troca-de-titularidade"]),
        ("titularidade-cadastro-existente", "Troca de titularidade para cliente que já tem cadastro",
         [f("troca-de-titularidade-para-cliente-que-ja-possui-cadastro-em-sistema")]),
        ("titularidade-falecimento", "Troca de titularidade por falecimento", [f("troca-de-titularidade-falecimento")]),
    ]},
    {"id": "planos", "nome": "Planos, valores, descontos e vencimento", "icone": "🏷️", "artigos": [
        ("planos-netflex", "Planos Netflex", [d("planos-netflex")]),
        ("tabelas-valores", "Tabelas de valores de aparelhos e taxas", [f("tabelas-sobre-valores-dos-aparelhos-e-valores-das-taxas")]),
        ("alteracao-plano", "Alteração de plano (Wizard)", [f("alteracao-de-plano"), f"{A}/alteracao-de-plano-wizard"]),
        ("troca-plano-manual", "Troca de plano manual", [f("troca-de-plano-manual"), f"{A}/alteracao-de-plano-manual"]),
        ("pre-para-pos", "Troca de plano pré-pago para pós-pago", [f("troca-de-plano-de-pre-pago-para-pos-pago")]),
        ("alteracao-vencimento", "Alteração de vencimento", [f("alteracao-de-vencimento")]),
        ("vencimento-manual", "Troca de vencimento manual", [f("troca-de-vencimento-manual")]),
        ("concessao-desconto", "Concessão de desconto", [f("concessao-de-desconto")]),
        ("promocao-7990", "Desconto promoção 79,90", [f("desconto-promocao-7990")]),
        ("adicionais", "Adicionais", [f("adicionais"), f"{A}/adicionais"]),
    ]},
    {"id": "financeiro", "nome": "Financeiro, bloqueio e desbloqueio", "icone": "💰", "artigos": [
        ("atendimentos-financeiros", "Atendimentos financeiros", [f("atendimentos-financeiros")]),
        ("pontos-pagamento", "Pontos de pagamento", [f("pontos-de-pagamentos")]),
        ("renegociar-boleto", "Renegociar boleto", [f"{A}/renegociar-boleto"]),
        ("reducao", "Liberação de acesso reduzido/bloqueado (com comprovante)", [f("pedido-de-liberacao-de-reducao")]),
        ("desbloqueio-confianca", "Desbloqueio de confiança", [d("desbloqueio-de-confianca")]),
        ("reativacao-alerta", "Após pagar reativação, com alerta da Qualidade", [f"{A}/apos-pagar-reativacao-com-alerta-da-qualidade"]),
        ("bloqueio-temporario", "Bloqueio temporário", [f("bloqueio-temporario")]),
        ("bloqueio-pre-pago", "Bloqueio temporário (pré-pago)", [f("bloqueio-temporario-pre-pago")]),
    ]},
    {"id": "cancelamento", "nome": "Cancelamento e retenção", "icone": "🚪", "artigos": [
        ("cancelamento", "Cancelamento", [f("cancelamento"), f"{A}/cancelamento"]),
        ("reversao-cancelamento", "Reversão de cancelamento", [f("reversao-de-cancelamento")]),
    ]},
    {"id": "endereco", "nome": "Instalação e mudança de endereço", "icone": "🏠", "artigos": [
        ("instalacao", "Instalação", [f"{A}/instalacao"]),
        ("segundo-cadastro-instalacao", "Segundo cadastro de instalação", [f"{A}/segundo-cadastro-instalacao"]),
        ("instalacao-empresarial", "Instalação empresarial", [f("instalacao-empresarial")]),
        ("segundo-ponto", "Segundo ponto", [f("segundo-ponto")]),
        ("transferencia-endereco", "Transferência de endereço (sem bloqueio)",
         [f("transferencia-de-endereco-sem-bloqueio"), f"{A}/transferencia-de-endereco"]),
        ("transferencia-com-bloqueio", "Transferência de endereço com bloqueio", [f("transferencia-com-bloqueio")]),
        ("transf-titularidade-sem-bloqueio", "Troca de titularidade + transferência de endereço (sem bloqueio)",
         [f("troca-de-titularidade-transferencia-de-endereco-sem-bloqueio")]),
        ("transf-titularidade-com-bloqueio", "Transferência + troca de titularidade com bloqueio",
         [f("transferencia-troca-de-titularidade-com-bloqueio")]),
        ("transferencia-interna", "Transferência interna", [f("transferencia-interna")]),
        ("troca-comodo", "Troca de cômodo", [f"{A}/troca-de-comodo"]),
    ]},
    {"id": "suporte", "nome": "Suporte técnico de internet", "icone": "📡", "artigos": [
        ("elementos-verificacao", "O que verificar na conexão do cliente", [f"{V}/definicao-dos-principais-elementos-a-serem-verificados"]),
        ("sem-acesso-fibra", "Sem acesso — Fibra", [f("sem-acesso-fibra")]),
        ("sem-acesso-pacpon", "Sem acesso — PacPon", [f("sem-acesso-pacpon")]),
        ("lentidao-fibra", "Lentidão — Fibra", [f("lentidao-fibra")]),
        ("lentidao-pacpon", "Lentidão — PacPon", [f("lentidao-pacpon")]),
        ("potencia-sinal", "Potência do sinal", [f("verificacao-da-potencia-do-sinal"), f"{V}/verificando-a-potencia-do-cliente"]),
        ("teste-velocidade", "Teste de velocidade (cabeado e Wi-Fi)",
         [f("teste-de-velocidade-cabeado-e-wi-fi"), f"{P}/metodo-correto-de-teste-de-velocidade"]),
        ("dns", "DNS alterado / trocado", [f"{V}/verificando-o-dns", f"{P}/introducao", f"{A}/dns-trocado"]),
        ("ipv6", "Verificando o IPv6", [f"{V}/verificando-o-ipv6"]),
        ("largura-canal", "Wi-Fi: largura e canal", [f"{V}/verificando-largura-e-canal"]),
        ("sites-servicos", "Problemas com sites ou serviços", [f("problemas-com-sites-ou-servicos")]),
        ("cookies", "Limpar cookies do navegador (Chrome, Edge, Firefox)",
         [f"{P}/limpando-cookies-do-navegador-chrome", f"{P}/limpando-cookies-do-navegador-edge",
          f"{P}/limpando-cookies-do-navegador-mozilla"]),
        ("verificar-manutencao", "Verificar manutenção na região", [f("verificar-manutencao")]),
        ("reparo-interno", "Reparo interno", [f("reparo-interno")]),
        ("porta-placa", "Porta e placa", [f("porta-e-placa")]),
        ("patch-cord", "Patch cord: instalação e substituição", [f("patch-cord-instalacao-e-substituicao")]),
    ]},
    {"id": "roteadores", "nome": "Roteadores e ONTs", "icone": "🛜", "artigos": [
        ("configuracao-roteador", "Configuração de roteador (fluxo de atendimento)", [f("configuracao-de-roteador")]),
        ("senha-wifi", "Alterar nome e senha do Wi-Fi (inclusive pelo app)",
         [f("alteracao-de-senha-e-nome-do-wifi"), "troca-de-senha-e-nome-de-wifi-pelo-app/alterando-a-senha"]),
        ("aparelhos-planos", "Aparelhos e planos suportados (capacidade de cada roteador)", [d("aparelhos-e-planos-comportados")]),
        ("senhas-padrao", "Senhas padrão e credenciais dos roteadores",
         [f"cap:{R}/senhas-padroes", f"cap:{P}/senhas-padroes", f"{P}/credenciais-de-acesso-ao-roteador"]),
        ("acesso-remoto", "Acesso remoto aos roteadores",
         ["cap:acesso-remoto/*", f"{P}/realizando-acesso-remoto-a-roteadores", f"{I}/realizando-acesso-remoto-a-roteadores"]),
        ("tp-link-wr829n", "TP-Link WR-829N / 820N", roteador("tp-link-wr-829n820n", "tp-link-wr-829n820n")),
        ("mercusys-mw301r", "Mercusys MW301R", roteador("mercusys-mw301r", "mercusys-ac12gmw301r")),
        ("mercusys-ac12g", "Mercusys AC12G", roteador("mercusys-ac12g-qu8", "mercusys-ac12gmw301r")),
        ("greatek-1200ac-nova", "Greatek 1200AC (versão atualizada)", roteador("greatek-1200ac-versao-atualizada", "greatek-1200-ac-versao-atualizada")),
        ("greatek-1200ac-antiga", "Greatek 1200AC (versão antiga)", roteador("greatek-1200ac-versao-antiga", "greatek-1200-ac-versao-antiga")),
        ("zte-h199a", "ZTE H199A — RE942 (branco)", roteador("zte-h199a-re942-branco", "zte-h199a")),
        ("zte-h198a", "ZTE H198A — RE914 (preto)", roteador("zte-h198a-re914-preto", "zte-h198a")),
        ("zte-f670l-nova", "ONT ZTE F670L (versão atualizada)", roteador("ont-zte-f670l-versao-atualizada", "ont-zte-f670l-versao-atualizada")),
        ("zte-f670l-antiga", "ONT ZTE F670L (versão antiga)", roteador("ont-zte-f670l-versao-antiga", "ont-zte-f670l-versao-antiga")),
        ("2flex-ac1200", "ONT 2Flex AC1200", roteador("ont-2flex-ac1200", "ont-2flex-ac1200")),
        ("2flex-fg300m", "ONT 2Flex FG300M", roteador("ont-2flex-fg300m", "ont-2flex-fg300m")),
        ("dlink-dir615", "D-Link DIR-615", roteador("d-link-dir-615", "d-link-dir-615-x1")),
        ("mikrotik-dhcp", "Mikrotik — DHCP corporativo (IP fixo)", [f"cap:{R}/mikrotik-dhcp-corporativo"]),
        ("vlans", "Lista de VLANs por projeto", [f"{R}/lista-de-vlans-por-projeto"]),
    ]},
    {"id": "telefonia", "nome": "Telefonia e Chip Netflex", "icone": "📞", "artigos": [
        ("telefone-fixo", "Suporte à linha de telefone", ["suporte-a-telefone/introducao", "suporte-a-telefone/compreendendo-o-servico",
                                                          "suporte-a-telefone/prestando-o-suporte"]),
        ("portabilidade", "Portabilidade de número fixo", [f("portabilidade")]),
        ("erro-registro-zte", "Erro de registro do número de telefone (ZTE)", [f"{P}/correcao-de-erro-de-registo-do-numero-de-telefone-zte"]),
        ("chip-introducao", "Chip Netflex — introdução", [f("chip-netflex-introducao")]),
        ("chip-ativacao", "Chip Netflex — ativação", [f("chip-netflex-ativacao-do-chip")]),
        ("chip-configuracao", "Chip Netflex — configuração", [f("chip-netflex-configuracao")]),
        ("rede-celular", "Configuração de rede do celular", [f("configuracao-de-rede-do-celular")]),
        ("chip-portabilidade", "Chip Netflex — portabilidade", [f("chip-netflex-portabilidade")]),
        ("chip-cadeia", "Chip Netflex — cadeia de atendimentos", [f("chip-netflex-cadeia-de-atendimentos")]),
        ("chip-recarga", "Chip Netflex — recarga", [f("chip-netflex-recarga")]),
        ("chip-reativacao", "Chip Netflex — reativação", [f("chip-netflex-reativacao")]),
        ("chip-bloqueio", "Chip Netflex — bloqueio", [f("chip-netflex-bloqueio")]),
        ("app-bora", "Chip Netflex — aplicativo Bora (Meu Móvel) e recargas", [d("aplicativo-bora")]),
        ("chip-taxa", "Chip Netflex — geração de taxa", [f("geracao-de-taxa-chip-netflex")]),
    ]},
    {"id": "tv-sva", "nome": "TV, streaming e SVA", "icone": "📺", "artigos": [
        ("sva", "SVA — serviços de valor agregado", [f("sva")]),
        ("campanha-sva", "Campanha SVA", [f("campanha-sva")]),
        ("cancelamento-sva", "Cancelamento de SVA", [f("cancelamento-de-sva")]),
        ("oletv-funcionamento", "OléTV — como funciona", [f"{O}/informacoes-sobre-o-funcionamento-do-servico"]),
        ("oletv-cadastro", "OléTV — cadastro e ativação",
         [f("cadastro-ole-tv"), f"{O}/passo-a-passo-para-ativar-ole-tv-pelo-ixc", f"{O}/cadastro-de-cliente", f"{O}/contratacao-de-plano",
          f"{O}/adicionar-contrato", f"{O}/publicacao-e-ativacao-do-plano", f"{O}/definicao-de-usuario-e-senha"]),
        ("oletv-financeiro-pontos", "OléTV — financeiro e pontos adicionais", [f"{O}/financeiro", f"{O}/adicionar-ponto"]),
        ("oletv-pacotes", "OléTV — pacotes adicionais", [d("pacotes-adicionais-da-oletv")]),
        ("globoplay-celeti", "Globoplay via Celeti Hub — visão geral e acesso",
         [f"{C}/o-que-e-celeti-hub", f"{C}/criando-os-novos-planos-globoplay", f"{C}/acessando-a-plataforma-celeti-hub",
          f"{C}/gerenciament-dos-assinantes-pelo-isp"]),
        ("globoplay-ativacao", "Globoplay via Celeti Hub — ativação e cancelamento", [f"cap:{C}/ativacao-do-servico"]),
        ("globoplay-problemas", "Globoplay via Celeti Hub — problemas na ativação", [f"cap:{C}/caso-eu-tenha-algum-problema"]),
        ("globoplay-promocao", "Promoção Globoplay padrão com anúncios", [f("promocao-globoplay-padrao-com-anuncios")]),
        ("playhub-categorias", "Playhub — categorias (Standard, Advanced, Top, Premium)",
         [d("playhub-categoria-standard"), d("playhub-categoria-advanced"), d("playhub-categoria-top"), d("playhub-categoria-premium")]),
        ("playhub-adicionar", "Playhub — adicionar produto ao cliente (IXC)", [d("adicionar-produto-playhub-ao-cliente-ixc")]),
        ("playhub-ativacao", "Playhub — ativação dos aplicativos", [f("procedimento-para-ativacao-dos-aplicativos-playhub")]),
        ("playhub-portal", "Playhub — portal do assinante", [d("portal-do-assinante-playhub")]),
        ("kinoplex", "Compra de ingressos Kinoplex (app Netflex iOS)", [f("compra-de-ingressos-kinoplex-aplicativo-netflex-ios")]),
        ("seguro-residencial", "Seguro residencial", [f("seguro-residencial"), d("adicao-do-seguro-residencial")]),
        ("telemedicina", "Telemedicina", [f"{A}/telemedicina"]),
    ]},
    {"id": "sistemas", "nome": "Sistemas internos", "icone": "🧰", "artigos": [
        ("ixc-onu", "IXC — verificar, provisionar e excluir ONU", [f"{I}/verificar-informacoes-da-onu", f"{I}/provisionamento-e-exclusao-de-onu"]),
        ("ixc-usuario", "IXC — cadastrar usuário, e-mail e senha",
         [f"{I}/cadastrar-usuario-no-ixc", f"cap:{I}/cadastar-e-mail-para-usuario", f"{I}/trocar-senha-de-acesso"]),
        ("ixc-permissoes", "IXC — habilitar permissões de acesso", [f"{I}/habilitacoes-de-permissao-de-acesso"]),
        ("ixc-projeto", "IXC — alterar projeto do cliente", [f"{I}/alterar-projeto-do-cliente"]),
        ("fiberdocs", "FiberDocs (IXC inMaps) — acesso e configuração",
         ["visualizacao-ixc-inmaps-fiberdocs/como-acessar-o-fiberdocs", "visualizacao-ixc-inmaps-fiberdocs/como-configurar-seu-fiberdocs"]),
        ("fiberdocs-mobile", "FiberDocs Mobile", ["visualizacao-ixc-inmaps-fiberdocs/como-configurar-seu-fiberdocs-mobile"]),
        ("horas-extras", "Sistema de solicitação de horas extras", ["cap:sistema-de-solicitacao-de-horas-extras/*"]),
        ("guia-base", "Sobre a base de conhecimento", ["cap:guia-de-utilizacao-da-base-de-conhecimento/*"]),
    ]},
]
