PROJETO LINKS DE VENDAS DAVOI — p.davoi.com.br
================================================

URL OFICIAL
https://p.davoi.com.br/

INSTALAÇÃO LIMPA
1. No cPanel, confirme que a raiz do subdomínio p.davoi.com.br aponta para a pasta onde os arquivos serão extraídos.
2. Extraia o conteúdo do ZIP diretamente nessa pasta. Não deixe uma pasta adicional entre a raiz e install.php.
3. Crie banco e usuário MySQL, concedendo todas as permissões.
4. Acesse: https://p.davoi.com.br/install.php
5. Após instalar, entre em: https://p.davoi.com.br/login.php
6. Apague ou renomeie install.php.

ATUALIZAÇÃO DE INSTALAÇÃO ANTIGA
1. Faça backup do banco e de config.php.
2. Substitua os arquivos pelo novo pacote, preservando config.php.
3. Entre normalmente no painel.
4. Acesse: https://p.davoi.com.br/upgrade.php
5. Clique em “Executar atualização”.
6. O procedimento:
   - mantém os códigos dos links;
   - mantém descrições e históricos;
   - altera a URL-base para https://p.davoi.com.br;
   - adiciona as novas colunas de auditoria;
   - mostra os links antigos novamente com a nova URL.

FORMATO NOVO
https://p.davoi.com.br/l/CODIGO

FORMATO LEGADO, TAMBÉM ACEITO
https://p.davoi.com.br/r.php?c=CODIGO

LINKS ANTIGOS DE assine.davoi.com.br
O código após “c=” ou após “/l/” pode ser colado no formulário usando a opção “Colar link completo existente”.
Exemplo:
https://assine.davoi.com.br/r.php?c=abc123
será salvo e exibido como:
https://p.davoi.com.br/l/abc123

IMPORTANTE SOBRE QR CODES JÁ IMPRESSOS
Um QR Code já impresso continua apontando para o domínio antigo. Para mantê-lo funcionando, o domínio assine.davoi.com.br precisa permanecer ativo e redirecionar:
- /r.php?c=CODIGO para https://p.davoi.com.br/r.php?c=CODIGO
- /l/CODIGO para https://p.davoi.com.br/l/CODIGO
Sem acesso ao domínio antigo, não é possível alterar fisicamente um QR Code já impresso.

DADOS REGISTRADOS
- data e hora em America/Sao_Paulo;
- IP público informado ao servidor;
- versão IPv4/IPv6;
- cabeçalho X-Forwarded-For;
- host, protocolo, método e URI;
- user-agent;
- referenciador;
- idioma e codificações aceitas;
- tipo de dispositivo estimado;
- sistema operacional estimado;
- navegador estimado;
- indicação de mobile e robô;
- hash diário de sessão, sem cookie adicional;
- query string;
- parâmetros UTM source, medium, campaign, content e term.

LIMITAÇÕES
- Localização geográfica exata não é inferida apenas pelo IP sem consultar um serviço externo.
- Detecção de navegador, sistema e dispositivo é estimativa baseada no user-agent.
- O serviço externo de QR Code gera apenas a imagem; o rastreamento ocorre no servidor DAVOI.

LINK COMPLETO E DESTINO
No cadastro é possível:
- gerar código aleatório;
- definir código personalizado;
- colar URL antiga completa para reaproveitar o código;
- redirecionar para WhatsApp;
- redirecionar para qualquer URL completa válida.


SEGURANÇA E PERFIS
- Sessão expira após 30 minutos de inatividade.
- Cookie de sessão HttpOnly, Secure em HTTPS e SameSite=Lax.
- Renovação do ID da sessão a cada 15 minutos.
- Limite de 5 tentativas de login inválidas por usuário/IP em 15 minutos.
- Cabeçalhos CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy e Permissions-Policy.
- Registro de auditoria para login, logout e gestão de usuários.
- Senhas novas com mínimo de 10 caracteres e armazenadas com password_hash.
- Administrador: cria/edita links, usuários, configurações e executa upgrade.
- Somente leitura: consulta painel, detalhes, QR Codes e registros, sem alterar dados.

ATUALIZAÇÃO DE SEGURANÇA
Após substituir os arquivos, entre com o administrador atual e execute:
https://p.davoi.com.br/upgrade.php
O primeiro usuário existente será promovido a administrador para evitar perda de acesso.


CORREÇÃO DE DATA E HORA — SÃO PAULO-SP
---------------------------------------
- O PHP usa obrigatoriamente America/Sao_Paulo.
- Cada conexão MySQL executa SET time_zone = '-03:00'.
- As funções NOW(), CURDATE() e DATE_SUB() passam a considerar o horário de São Paulo.
- O fuso não depende mais do horário configurado no servidor cPanel.
- Após substituir os arquivos em uma instalação existente, execute:
  https://p.davoi.com.br/upgrade.php

IMPORTANTE SOBRE REGISTROS ANTIGOS
A correção passa a valer para novos registros. Registros antigos que já foram gravados
com horário incorreto não são alterados automaticamente, pois não é possível saber
com segurança qual fuso o servidor usava no momento de cada gravação.


ORGANIZAÇÃO DOS LOGS
- Os acessos são apresentados do mais recente para o mais antigo.
- A ordenação utiliza clicked_at DESC e id DESC para manter a ordem correta quando dois registros têm o mesmo segundo.
- São exibidos até 500 acessos por link na tela de detalhes.
