Files
Investidor-V2/docs/investmoz/zones/implementation-status.md
T
nala 1106509116
tests / ci (push) Canceled after 0s
vrsao 2
2026-10-08 14:02:01 +02:00

7.5 KiB
Raw Blame History

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|combined conserva 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/zones e /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; --apply cria 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.