# Project TODO

- [x] Definir a arquitetura do Vídeos Viral, incluindo regras de elegibilidade, papéis e proteção contra abuso.
- [x] Criar o esquema MySQL para links, acessos, desafios CAPTCHA, métricas e alertas administrativos.
- [x] Aplicar a migração do banco de dados, disponibilizar o diagnóstico em `/install` e incluir o instalador PHP funcional para hospedagem MySQL tradicional.
- [x] Implementar a landing page responsiva e otimizada para SEO, explicando R$ 15,00 por mil visualizações válidas.
- [x] Configurar autenticação e associação da conta `ingrisson-pro@hotmail.com` ao papel administrativo.
- [x] Criar o dashboard do membro para gerar, copiar, listar e analisar links de vídeo.
- [x] Gerar links públicos no formato `https://freeqrcode.top/video/{hash}` e armazenar a URL original com segurança.
- [x] Implementar a página pública `/video/{hash}` com contagem de cinco segundos, verificação de adblock, CAPTCHA matemático e incorporação compatível.
- [x] Registrar IP, data e horário dos acessos, restringindo a três acessos diários por IP e vídeo.
- [x] Calcular visualizações elegíveis e ganhos a R$ 15,00 por 1.000 acessos únicos diários por vídeo.
- [x] Exibir gráficos e relatórios de links, visualizações, acessos únicos e ganhos com Chart.js.
- [x] Criar o painel administrativo protegido com totais de usuários, acessos, ganhos e monitoramento de anomalias.
- [x] Enviar alertas ao proprietário para novos cadastros e picos anormais de acessos, sem afetar a remuneração.
- [x] Aplicar a identidade visual cyberpunk com alto contraste, rosa neon, ciano elétrico e detalhes de HUD.
- [x] Vincular cada abertura pública à validação de CAPTCHA para registrar todos os acessos e aplicar o limite de três acessos por IP e vídeo com precisão.
- [x] Criar e executar testes unitários, validar os fluxos no navegador e revisar responsividade.
- [x] Implementar renderização indexável das rotas públicas com metadados por página e validar a resposta HTML para SEO.
- [x] Validar em ambiente autenticado a criação de link e registrar as verificações possíveis sem inserir dados de demonstração no banco.
- [x] Preservar o título específico de cada vídeo após hidratação e validar a rota pública de vídeo com um hash existente em teste SSR isolado.
- [x] Adicionar uma verificação automatizada da criação autenticada de links e dos dados do dashboard sem gravar dados de demonstração.
- [x] Gerar links no formato `https://videosviral.top/v/{hash}` e redirecionar sua abertura para `https://freeqrcode.top/video/{hash}`.
- [x] Adicionar botões de compartilhamento para o link Viral nos fluxos público e de membro.
- [x] Criar páginas públicas de Termos de Uso e Política de Privacidade, incluindo regras de elegibilidade e saques.
- [x] Reforçar a proteção das rotas privadas para que o painel do membro seja acessível somente após login.
- [x] Criar o modelo de dados e a interface para o membro cadastrar e salvar sua chave PIX.
- [x] Implementar solicitações de saque a partir de R$ 1,00, com prazo informado de até dez dias.
- [x] Exibir as regras de saque e o valor mínimo na página inicial.
- [x] Criar a gestão administrativa de saques com chave PIX e ações de aprovar, concluir e cancelar.
- [x] Criar testes, validar responsividade e revisar os novos fluxos de links e saques.
- [x] Bloquear `/dashboard` e `/admin` também no servidor antes da renderização para visitantes não autenticados.
- [x] Ampliar a cobertura integrada dos fluxos de PIX e administração de saques e registrar a validação navegável disponível.
- [x] Validar a persistência real de chave PIX e os estados de saque em uma transação de teste revertida ao final.
- [x] Confirmar leitura e reversão dos dados PIX e todas as transições permitidas de saque em validação transacional sem persistir registros temporários.
- [x] Corrigir o contêiner global para manter espaçamentos laterais equilibrados em todo o site, especialmente na visualização desktop.
- [x] Substituir todas as referências públicas de `videosviral.top` por `videos-viral.top`.
- [x] Confirmar que a página `/install` está disponível e exibe o diagnóstico de instalação do banco.
- [x] Recompilar e verificar os artefatos públicos para confirmar que links, SEO e compartilhamento usam exclusivamente `videos-viral.top`.
- [x] Adicionar uma barra de progresso visual sincronizada aos cinco segundos de validação da página de vídeo.
- [x] Criar uma chamada persuasiva de cadastro na página pública de vídeo para converter novos membros.
- [x] Criar uma pasta raiz independente `video/` com player, estilos e conexão MySQL próprios para implantação em `freeqrcode.top`.
- [x] Preparar o aplicativo principal para gerar links em `https://viral-videos.top/v/{hash}` e redirecionar ao player independente em `https://freeqrcode.top/video/{hash}`.
- [x] Documentar a instalação independente do player, as variáveis de ambiente e o contrato de banco compartilhado.
- [x] Validar a estrutura separada sem afetar o funcionamento do site principal.
- [x] Executar o player independente em servidor PHP temporário com um hash existente para validar leitura do banco, contagem regressiva, CAPTCHA e resposta HTTP.
- [x] Garantir no player PHP que a validação de CAPTCHA só seja aceita após cinco segundos, mesmo diante de requisições diretas.
- [x] Criar uma verificação HTTP transacional do player PHP para provar rejeição antes de cinco segundos e liberação após a espera, sem manter acessos de teste.
- [x] Executar a verificação ponta a ponta do player em transação MySQL com rollback explícito após o CAPTCHA ser liberado.
