PATCH - CONFIRMAÇÃO OBRIGATÓRIA DE ENTREGA: MEL -> NILSON
========================================================

PACOTE DE ORIGEM ANALISADO
--------------------------
launcher(20260818-210523).zip
SHA-256: 0453e49bb621c11de59c1b28b60d4bad484e8eba3fb8fdd5ef99c7f0aed150df

COMO INSTALAR
-------------
1. Faça backup da pasta launcher e, principalmente, de launcher/api/max.db.
2. Abra a pasta launcher atual na hospedagem.
3. Extraia este patch DIRETAMENTE DENTRO da pasta launcher.
4. Confirme a substituição dos arquivos existentes.
5. NÃO apague e NÃO substitua launcher/api/max.db.
6. Feche e abra novamente o painel no celular/computador.

Não precisa configurar Cron Job.
As duas tabelas novas são criadas automaticamente no banco atual.

CONTAS CONFIGURADAS
-------------------
- Origem: usuário melcliente (Mel).
- Confirmação: usuário nilson (Nilson).
- Nenhum outro revendedor recebe esta regra.
- A ligação usa os usernames exatos e resolve os IDs existentes no banco.

FLUXO IMPLEMENTADO
------------------
1. A Mel cadastra o cliente pelo código normalmente.
2. A verificação de cliente repetido continua funcionando como antes.
3. Geram confirmação para o Nilson:
   - um cliente realmente novo;
   - a opção Mais um ponto.
4. A opção Aparelho formatado continua trocando somente o código e não cria
   uma entrega nova. Se já existir uma confirmação ligada ao cliente, ela
   acompanha o código novo.
5. Para os novos cadastros da Mel, o WhatsApp é obrigatório.
6. Depois do cadastro, o Nilson recebe a solicitação no próprio painel.

TELA OBRIGATÓRIA DO NILSON
--------------------------
- Ao abrir qualquer página do painel, o Nilson é levado para a confirmação.
- Ele não consegue abrir o restante do painel enquanto houver solicitação pendente.
- A tela mostra revendedora, nome do cliente, código e WhatsApp.
- O número é clicável e abre diretamente a conversa do cliente no WhatsApp.
- Havendo várias solicitações, elas aparecem uma por vez até todas serem respondidas.
- O Nilson ainda pode sair da conta; não é possível fechar ou ignorar a confirmação.

RESPOSTA SIM
------------
- O cliente continua ativo e funcionando normalmente.
- Nenhum crédito, vencimento ou dado do cliente é alterado.

RESPOSTA NÃO
------------
- O cliente é bloqueado imediatamente nas tabelas de ativação.
- A launcher passa a receber bloqueado na consulta ao servidor.
- O painel da Mel mostra o status: Cliente não identificado.
- O botão de reativar e a renovação manual ficam impedidos para esse código.
- A consulta central da launcher reaplica a trava caso algum fluxo antigo tente
  marcar o código como ativo.

SEGURANÇA E INTEGRIDADE
-----------------------
- Resposta protegida pela sessão do Nilson e token CSRF.
- O Nilson só consegue responder solicitações destinadas à própria conta.
- Cada solicitação aceita apenas uma resposta válida.
- A recusa atualiza ativação, espelho do revendedor e controle mensal na mesma transação.
- O cadastro e a criação da solicitação também ficam na mesma transação; se a
  solicitação falhar, o crédito e o cadastro são desfeitos juntos.
- O patch não contém banco de dados, clientes, APKs ou credenciais.

ARQUIVOS DO PATCH
-----------------
- confirmar_entregas.php (novo)
- session_check.php
- mac.php
- painel_reseller.php
- clientes_admin.php
- actions/customer_actions.php
- api/activation_guard.php
- api/renovar_cliente.php
- includes/customer_identity.php
- includes/delivery_verification.php (novo)
- LEIA-ME_PATCH_CONFIRMACAO_ENTREGA_MEL_NILSON.txt

VALIDAÇÕES EXECUTADAS
---------------------
- Integridade do ZIP original: aprovada.
- Identificação no banco: melcliente=revendedor 18; nilson=revendedor 19.
- Criação das tabelas e resolução dinâmica do par: aprovadas.
- Cadastro, fila obrigatória e isolamento somente entre as duas contas: aprovados.
- Resposta Sim mantendo o cliente ativo: aprovada.
- Resposta Não bloqueando as três representações do cliente: aprovada.
- Status Cliente não identificado e proteção contra reativação: aprovados.
- Resposta duplicada impedida: aprovada.
- Estrutura dos blocos PHP e sintaxe JavaScript alterada: aprovadas.
