4.3 KiB
4.3 KiB
Dicionário do núcleo implementado
| Tabela | Identidade e relações | Regras |
|---|---|---|
| investment_items | UUID; código único; tipo; título; versão | Representação canónica interna; não duplica a oportunidade pública |
| investment_item_opportunities | item UUID → opportunity bigint único | Correspondência explícita; conserva ID, slug e URLs existentes |
| investment_item_projects | item UUID → project UUID único | Correspondência só com evidência; não inferida por nome |
| investment_zones | UUID; código único; operador FK organizations; fonte FK | Categoria zee/zfi/industrial_park/pending; publicação independente, editor/revisor, conteúdo PT/EN, versão; soft-delete |
| investment_legal_sources | UUID; proprietário e validador FK users | Diploma/artigo/URL/entidade/vigência; pending/validated/revoked; outra pessoa valida; alteração documental requer nova referência |
| investment_zone_links | item ↔ zona, par único | Papel, associação, prioridade, principal/secundária, evidência, período, fonte jurídica opcional, editor/validador e versão |
| investment_zone_relations | zona ↔ exactamente um cluster/corredor/projecto | FKs explícitas e índice único por dimensão; múltiplas zonas por âncora; mesmas regras temporais e de validação |
| investment_zone_geometries | zona ↔ geo_geometries | Finalidade, fonte, entidade, data, permissão de publicação, editor/revisor GIS; estatuto não inferido por localização |
| investment_zone_revisions | zona/versão únicos | Snapshot encriptado, SHA-256, actor/acção/data; trigger recusa UPDATE/DELETE |
| investment_submission_zones | submission UUID → zona UUID | Versão consultada e finalidade; origem preservada no protocolo, sem listas relacionais em JSON |
Campos jurídicos e coordenadas não têm valores reais predefinidos. As migrations não semeiam estatutos, percentagens ou entidades. As restrições de geometria existentes asseguram 2D, SRID 4326, não vazio, tipo correcto, validade topológica e limites terrestres. Todas as novas FKs usam restrição de eliminação.
Relações ER
erDiagram
investment_items ||--o{ investment_item_opportunities : maps
opportunities ||--o| investment_item_opportunities : preserves_id
investment_items ||--o{ investment_item_projects : maps
projects ||--o| investment_item_projects : preserves_id
investment_items ||--o{ investment_zone_links : associates
investment_zones ||--o{ investment_zone_links : contains_relation
investment_zones ||--o{ investment_zone_relations : territorial
projects |o--o{ investment_zone_relations : anchor_or_complement
economic_clusters |o--o{ investment_zone_relations : cluster
development_corridors |o--o{ investment_zone_relations : corridor
investment_legal_sources |o--o{ investment_zones : legal_reference
organizations |o--o{ investment_zones : operator
investment_zones ||--o{ investment_zone_geometries : locates
geo_geometries ||--o{ investment_zone_geometries : shape
investment_zones ||--o{ investment_zone_revisions : snapshots
Na relação territorial exactamente uma das três FKs de destino está preenchida. Operador não equivale a empresa instalada; cadastro empresarial e documentos existentes continuam separados. Revisão da zona não valida automaticamente as suas associações ou perímetros.