Files
Investidor-V2/docs/investmoz/land-assistance/implementation.md
T
nala e65cb26901
tests / ci (push) Canceled after 0s
varias alteracoes
2026-10-06 14:50:12 +02:00

69 lines
6.3 KiB
Markdown

# Terra e DUAT — implementação técnica e limites
## Estado
Implementação interna preparada; não activar como checklist jurídico nem como canal oficial de submissão. A Lei de Terras, o regulamento aplicável, formulários oficiais e procedimentos locais ainda não foram validados em cópias legíveis. O inventário de ficheiros disponíveis e hashes está em [source-inventory.md](source-inventory.md).
O confronto com o prompt consolidado está detalhado em [requirement-traceability.md](requirement-traceability.md). A triagem legislativa está em [legal-source-review-2026-10-03.md](legal-source-review-2026-10-03.md). A checklist jurídica permanece bloqueada até revisão do Boletim da República e aprovação competente. O pedido de apoio aceita email ou telefone: a migration aditiva permite `interest_requests.email = NULL`, sem email fictício. Integrações downstream que exijam email precisam de validação operacional.
## Funcionalidade incluída
- Guia público, modelo em branco imprimível e fluxo autenticado de rascunho privado.
- Formulário progressivo com dados do requerente, localização por selecção territorial publicada, uso e situação declarados, antecedentes, plano facultativo de exploração, preparação/informação sobre consulta e estado comunicado pelo próprio requerente.
- Referência interna e versões optimistas; cada alteração guarda snapshot cifrado e evento sem conteúdo pessoal.
- Pedido de apoio encaminhado ao CRM `InterestSubmission`, com consentimento, chave idempotente por caso, recibo interno e evento outbox. Um contacto utilizável (email ou telefone) é aceite; a coluna email foi tornada anulável por migration aditiva e reversível com guarda para preservar pedidos telefónicos.
- Acompanhamento e vista de gestão com estados internos. “Encaminhamento preparado” não confirma envio nem recepção por órgão público.
- Cópia preenchida é HTML imprimível/guardar como PDF pelo navegador; não é um PDF oficial preenchível.
- Ficheiros privados limitados a PDF/JPG/PNG e 10 MB. Sem antivírus configurado, ficam em quarentena e não são descarregáveis.
## Limites funcionais e jurídicos
- O selector territorial identifica apenas entradas do catálogo público. Não valida cadastro, limites, titularidade, disponibilidade ou direito.
- Consulta comunitária e dados associados são informação declarada/preparatória; a aplicação não certifica convocatória, presença, acta, consentimento ou suficiência legal.
- Não há submissão electrónica, pagamento de taxas, consulta a processos governamentais nem integração com órgãos públicos.
- Os scans em `Scan/Terras` são imagens sem OCR pesquisável. `DUAT.docx` estava bloqueado por outro processo; não foi contornado. Os originais não foram alterados. Conteúdo exige OCR/abertura autorizada e revisão humana.
- Sem publicação de requisitos legais, prazos, elegibilidade, taxas ou promessa de emissão.
## Confronto com o prompt consolidado
- Percursos, dados condicionais, múltiplas parcelas, plano facultativo, consulta preparatória e acompanhamento interno estão representados no formulário existente.
- As versões em branco e preenchida são páginas imprimíveis. Não são chamadas oficiais nem afirmam recepção pela autoridade. A cópia preenchida reflecte os dados guardados e a versão interna; não tem assinatura simulada.
- A checklist por modalidade/jurisdição/fase não foi activada: os scans ainda não foram lidos e fontes legais integrais não foram reconciliadas. Não substituir esta lacuna por itens presumidos.
- O requisito de contacto “email ou telefone” está coberto no intake local. Consumidores, notificações e exports que não tolerem email nulo ainda exigem verificação antes de operar com pedidos exclusivamente telefónicos.
- Antimalware continua ausente; uploads permanecem em quarentena sem libertação automática.
## Ficheiros principais
- `routes/land-assistance.php`, incluído em `routes/web.php`.
- `app/Http/Controllers/LandAssistanceController.php`
- `app/Http/Requests/StoreLandAssistanceCaseRequest.php`
- `app/Models/LandAssistanceCase.php`
- `database/migrations/2026_10_03_200000_create_land_assistance_cases.php`
- `resources/js/pages/land-assistance/` e `resources/js/layouts/portal-navigation.tsx`
- `docs/investmoz/land-assistance/source-inventory.md`
- `docs/investmoz/land-assistance/requirement-traceability.md`
- `tests/Feature/LandAssistanceTest.php`
## Verificações executadas
- PHP 8.5.11: lint sintáctico dos três ficheiros PHP principais e do teste.
- `npm.cmd run types:check`: TypeScript passou.
- `php artisan route:list --path=terra-duat`: 16 rotas registadas.
- `php artisan test --filter=LandAssistanceTest`: 6/6 testes, 46 asserções, em PostgreSQL 17 QA descartável na porta 55441; a suite PHP integral passou 253/253 (2.590 asserções) nesse ambiente. Nenhuma migration foi aplicada à base operacional; a porta 5432 não foi usada.
## Riscos e pendências
1. Completar confronto artigo a artigo com Boletins da República integrais; registar diploma, artigo, vigência, URL/cópia e revisão jurídica antes de transformar qualquer item em requisito executável.
2. Identificar e revisar por OCR os sete scans, em cópias de trabalho, sem substituir ou publicar os originais.
3. Configurar serviço antivírus/quarentena com estados, auditoria e política de retenção antes de permitir download de uploads.
4. Fazer teste de navegador de passos condicionais, seletores em cascata, gravação/retoma, impressão e permissões de gestão; a evidência automatizada específica desta interface ainda não está registada.
5. Confirmar política de retenção/eliminação de dados pessoais e tratamento de dados sensíveis de comunidade/ocupantes.
## Reversão
A migration tem `down()` protegido: recusa eliminar as tabelas quando há registos. Para reversão depois de uso, preservar exportação cifrada e referências CRM, validar retenção/apagamento, separar/arquivar os registos e só então planear reversão. Não apagar tabelas com casos activos. As rotas/UI podem ser desactivadas por remoção do `require` em `routes/web.php` e do link de navegação, mantendo dados intactos.
## Gate proposto
`PENDENTE — revisão humana`. Fluxo interno implementado; integração de CRM e controles técnicos preparados. Gate público para requisitos legais, checklist e submissão oficial não satisfeito.