# Arquitetura e decisões

- PHP procedural por endpoints com serviços centralizados e PDO.
- MySQL/MariaDB com InnoDB.
- A capacidade é serializada através de uma linha de bloqueio em `event_settings`; os registos contam os estados `waiting`, `scheduled`, `called` e `admitted`.
- Os tokens do painel e QR são independentes e guardados como SHA-256.
- O início real da operação é registado apenas por ação autorizada.
- A admissão tem restrição única por grupo e é efetuada em transação.
- Polling AJAX substitui WebSockets.
- PHPMailer está integrado; a configuração SMTP fica desativada até existirem credenciais.
- Endroid QR Code produz o SVG/Data URI de confirmação.
- A leitura da câmara usa html5-qrcode através de CDN; para produção, recomenda-se alojar o ficheiro da biblioteca localmente após revisão da versão e licença.

## Limitações conhecidas desta entrega inicial

- A gestão administrativa detalhada de grupos, configurações, incidentes e comunicados ainda necessita de endpoints e ecrãs CRUD completos.
- O cálculo da fila cria previsões a partir do instante atual e requer revisão antes de operação real: o recálculo avançado de atrasos, ausências, correções manuais e conservação rigorosa de sequências deve ser concluído em staging.
- O instalador está bloqueado a localhost por defeito; para cPanel, use uma allowlist temporária de IP e remova o ficheiro após a instalação.
- Não existe integração com um servidor externo neste ambiente.
