# Roadmap do Projecto ## 1. Estratégia O desenvolvimento será incremental. Cada fase termina apenas quando documentação, código, testes e validação estiverem concluídos. `develop` recebe trabalho validado; `main` representa versões demonstráveis ou publicadas. ## 2. Definição de pronto Uma entrega está pronta quando: - requisitos e regras relacionados estão actualizados; - implementação segue permissões e auditoria; - migrations possuem estratégia segura de avanço e reversão; - testes automatizados críticos passam; - formatação e verificações técnicas passam; - validação manual documentada passa; - não existem dados reais no ambiente de demonstração; - commit possui mensagem clara e o repositório está limpo. ## 3. Fase 0 — Fundação documental **Objectivo:** fechar a visão funcional antes do código de negócio. Entregáveis: - requisitos; - regras de negócio; - matriz de permissões; - fluxos principais; - roadmap; - levantamento das questões pendentes com o cliente. - estratégia white-label e catálogo inicial de configurações. Critério de saída: documentos revistos e decisões pendentes identificadas. Commit sugerido: `docs: criar fundacao funcional do projecto`. ## 4. Fase 1 — Modelo de dados e arquitectura Entregáveis: - dicionário completo de dados; - diagrama de relações; - estados e índices; - decisões de arquitectura, auditoria e ficheiros; - plano de backups e ambientes; - dados fictícios de desenvolvimento. - revisão do modelo conceptual white-label e decisão dos campos exactos da primeira migration. Critério de saída: modelo suporta os fluxos da Versão 1 sem campos genéricos para dados estruturáveis. Commit sugerido: `docs: definir arquitectura e modelo de dados`. ## 5. Fase 2 — Qualidade e integração contínua Entregáveis: - configuração de testes; - formatação com Laravel Pint; - análise estática seleccionada; - pipeline no GitHub; - convenções de branches, commits e revisão; - configuração segura de `.env.example`. Critério de saída: cada push executa verificações automaticamente. Commit sugerido: `ci: configurar verificacoes de qualidade`. ## 6. Fase 3 — Autenticação, contas e autorização **Estado actual:** núcleo implementado, incluindo login único, limitação de tentativas, primeiro acesso, registo público de pacientes, confirmação de contacto, recuperação por código, consentimentos legais versionados e encerramento de outras sessões. Entregáveis: - login, logout, recuperação e primeiro acesso; - utilizadores, perfis e permissões; - activação e suspensão; - limitação de tentativas e sessões; - auditoria inicial; - testes de isolamento por perfil. Critério de saída: matriz de permissões comprovada por testes. Branch: `feature/auth-access`. Commit sugerido: `feat: implementar autenticacao e controlo de acesso`. ## 7. Fase 4 — Pacientes e consentimentos Entregáveis: - cadastro, pesquisa e edição; - número clínico; - detecção de duplicados; - contactos, responsáveis e dependentes; - consentimentos e alertas básicos; - auditoria e testes. Critério de saída: paciente pode ser criado com segurança e usado pelos módulos seguintes. Branch: `feature/patients`. ## 8. Fase 5 — Profissionais, serviços e agenda Entregáveis: - perfis profissionais e especialidades; - catálogo de serviços, preços e duração; - horários, pausas e indisponibilidades; - cálculo de vagas e bloqueio de conflitos; - testes de concorrência e disponibilidade. Critério de saída: vagas correctas são produzidas para todos os cenários acordados. Branch: `feature/scheduling`. ## 9. Fase 6 — Marcações e recepção Entregáveis: - criação, confirmação, chegada, cancelamento, falta e reagendamento; - histórico de estados; - política configurável de pré-pagamento; - notificações internas e registo de envios; - painel diário da recepção. Critério de saída: fluxo completo da marcação passa nos testes de estados. Branch: `feature/appointments`. ## 10. Fase 7 — Processo clínico básico Entregáveis: - triagem e sinais vitais; - início/conclusão da consulta; - notas, diagnósticos, alergias e condições; - prescrições e adendas; - documentos clínicos básicos; - auditoria de leitura e alteração. Critério de saída: nenhum perfil indevido lê dados clínicos e o registo concluído é imutável sem adenda. Branch: `feature/clinical-records`. ## 11. Fase 8 — Facturação e pagamentos Entregáveis: - facturas e itens; - descontos e aprovações; - pagamentos parciais e alocações; - recibos, estornos, reembolsos e fecho; - relatórios financeiros básicos; - testes de arredondamento e integridade. Critério de saída: movimentos conciliam com saldos e possuem auditoria completa. Branch: `feature/billing`. ## 12. Fase 9 — Portal do paciente Entregáveis: - acesso seguro; - perfil e dependentes autorizados; - marcações próprias; - facturas, recibos, prescrições e documentos publicados; - pedidos de correcção de dados; - testes contra acesso horizontal indevido. Critério de saída: paciente vê somente informação própria explicitamente permitida. Branch: `feature/patient-portal`. ## 13. Fase 10 — Relatórios e operação Entregáveis: - agenda e produtividade; - atendimentos, cancelamentos e faltas; - facturação, recebimentos e saldos; - exportações controladas; - filtros, paginação e desempenho. Critério de saída: totais conferem com dados de origem e permissões são respeitadas. Branch: `feature/reports`. ## 14. Fase 11 — Homologação online Entregáveis: - ambiente separado com HTTPS; - base fictícia e contas de demonstração; - backups e restauro testado; - monitorização, logs e filas; - checklist de segurança; - roteiro de aceitação do cliente. Critério de saída: cliente conclui os cenários principais e aprova ou regista ajustes. Release prevista: `v0.9.0`. ## 15. Fase 12 — Produção da Versão 1 Entregáveis: - correcções da homologação; - formação e manuais; - plano de migração de dados; - plano de reversão e suporte; - validação legal e operacional; - publicação controlada. Critério de saída: aceite formal, backup inicial e operação acompanhada. Release prevista: `v1.0.0`. ## 16. Evolução posterior ### Versão 2 - seguradoras e autorizações; - integrações de pagamento; - notificações WhatsApp/SMS/email; - teleconsulta; - documentos avançados e website institucional. ### Versão 3 - farmácia e stock; - laboratório; - múltiplas unidades; - aplicação móvel; - integrações e API externa. ## 17. Riscos e mitigação | Risco | Mitigação | |---|---| | Âmbito crescer sem controlo | congelar Versão 1 e registar pedidos no backlog | | Regras do cliente incompletas | validar questões pendentes antes do módulo correspondente | | Exposição de dados clínicos | negar por padrão, testar permissões e auditar acessos | | Erros financeiros | usar decimal, transacções, movimentos imutáveis e reconciliação | | Conflitos de agenda | restrições, bloqueio transaccional e testes concorrentes | | Internet instável | interface leve, filas, repetição e mensagens recuperáveis | | Perda de trabalho | commits frequentes, GitHub, backups e restauro testado | | Dependência de uma pessoa | documentação versionada e convenções claras | ## 18. Próxima etapa aprovada após esta fundação Rever os dez pontos pendentes em `requisitos.md` e, com as respostas, criar `base-de-dados.md` e `arquitectura.md` antes de iniciar autenticação.