7.5 KiB
Execução autorizada — 28/09/2026
O proprietário autorizou progressão automática entre fases e reiterou «prossiga». Não há nova aprovação de fase a pedir. As verificações técnicas e as pendências de dados mantêm-se registadas.
Implementado até ao momento
- Migration
2026_09_28_100000_investment_zone_foundation: nove tabelas aditivas; entidades ZEE/ZFI/parque separadas do enquadramento jurídico; identidade UUID com correspondências tipadas de oportunidades/projectos; associações M:N; revisão editorial encriptada e imutável. - Migration
2026_09_28_110000_zone_geometry_review: editor e revisor GIS separados. Geometrias PostGIS existentes reutilizadas; upload GeoJSON validado, perímetro exige polígono e referência legal, sobreposição de perímetros é remetida para revisão. - APIs v2 para cadastro, fontes, validação/revogação, ligações, relações territoriais, geometrias e mapa. API v1 preservada, com filtros opcionais
zee_id,zfi_id,park_id; resultados continuam a usar IDs canónicos de oportunidades existentes. - As quatro entradas filtram o mesmo catálogo através de
dimension=cluster|corridor|zee|zfi; filtros compatíveis são mantidos.view=grid|list|map|combinedconserva a vista no URL. Falha do mapa apresenta a lista e mensagem de recuperação; ensaio de navegador confirmado. - Páginas
/zonas,/zonas/{id},/management/investment/zonese/management/investment/zones/{id}. Catálogo tem quatro entradas; ficha de oportunidade e carteira territorial exibem associações publicadas. - Edição PT/EN, formulário de fontes, relações e GIS; revisões e conflitos de versão. Fonte revogada ou vencida oculta zonas/associações e geometrias da consulta pública sem eliminar registos.
- Gestão exige autenticação, email verificado, gate de gestor e MFA confirmado. Validar fonte/GIS e publicar exigem designação em configuração. Auto-aprovação recusada. Suspensão/revogação continua acessível a gestores com MFA para retirar informação rapidamente.
- Migration
2026_09_28_120000_investment_submission_zones: origem normalizada por FK, versão da zona e finalidade interest/dossier/meeting. Rascunho deduplicado por utilizador/zona/versão/investimento/finalidade; submissão revalida disponibilidade e versão, conserva origem no CRM e snapshot privado, e reutiliza protocolo nos reenvios. - Comando
investment:reconcile-identities: dry-run por omissão;--applycria apenas correspondência directa de IDs. Executado localmente para seis oportunidades, preservando registos e URLs; 16 projectos continuam por reconciliar documentalmente, sem fusão automática.
Aplicação local e reversão
Primeiro backup: storage/app/private/zones-backup-20260928-015930/, restaurado e conferido em 93 tabelas. Primeira migration levou a 102 tabelas; apenas migrations 35→36, novas tabelas vazias.
Segundo backup: storage/app/private/zones-backup-20260928-021135/, restaurado e conferido em 102 tabelas. Segunda migration manteve 102 tabelas; migrations 36→37. Sessões 3→2 durante uso local; contagens de negócio preservadas. Manifestações, oportunidades e dossiers não foram convertidos ou publicados em massa. Nenhuma zona fictícia foi inserida na base operacional.
Rollback das novas tabelas recusa se existirem dados; rollback vazio foi testado isoladamente. Com dados, usar restauro isolado do backup, reconciliar com a aplicação compatível e preservar a base actual para recuperação. Não executar rollback global das migrations antigas.
Terceiro backup: zones-backup-20260928-061527/, 102 tabelas restauradas/conferidas antes da origem de manifestações. Após migration: 103 tabelas, migrations 37→38, tabela nova vazia. Quarto backup: zones-backup-20260928-062127/, 103 tabelas verificadas antes da correspondência canónica. Reconciliação posterior: apenas investment_items e investment_item_opportunities mudaram de zero para seis; restantes contagens iguais. Relatórios privados em storage/app/private/zone-reconciliation/. Inventário actual agregado.
Limites actuais por fase
| Fase | Estado factual | Trabalho ainda necessário |
|---|---|---|
| 0 | Baseline e plano executados | Identidade Git para commits; não configurada em nome do utilizador |
| 1 | Núcleo canónico/legal/GIS aditivo implementado | Modelo completo de actividades, benefícios, obrigações, instalações, lotes e indicadores; matriz jurídica por artigo; correspondências projecto–oportunidade reconciliadas |
| 2 | APIs e administração do núcleo implementadas | Workflows institucionais completos, histórico de todas as entidades, atribuição nominal de funções, MFA de sessão e testes de contrato exaustivos |
| 3 | Filtros das zonas integrados com resultados sem duplicação | Descoberta indirecta por elos/nós/influência, ranking/sinónimos, telemetria e benchmark representativo |
| 4 | Cadastro e fichas com conteúdo PT/EN, mapa esquemático, lista–mapa, filtros/vista no URL e recuperação da falha do mapa | Interface integral EN, acessibilidade assistiva e E2E de todas as jornadas |
| 5 | Interesse/dossier/reunião assistidos com origem zona/versão/finalidade no protocolo e CRM interno | Origem completa de filtros, SLA parametrizado e integração externa real formalmente autorizada |
| 6 | Backups/restauros, dry-run, seis correspondências canónicas e reconciliação executados | UAT, carga, formação real, recuperação pontual e piloto com dados oficiais |
| 7 | Não iniciada | Decisão de produção, suporte e requisitos operacionais |
Não declarar a implementação integral concluída com base nesta entrega. Zero geometrias e zonas oficiais estão cadastradas localmente; o estado vazio é intencional até haver documentos e responsáveis. Configurar INVESTMOZ_ZONE_LEGAL_REVIEWERS, INVESTMOZ_ZONE_GIS_REVIEWERS, INVESTMOZ_ZONE_PUBLISHERS com emails de gestores já autorizados, após designação. Estas listas não atribuem competência legal por si próprias.