179 KiB
179 KiB
| 1 | Tabela | Campo | Tipo PostgreSQL | Nulo | Predefinição | PK/FK | Único | Restrição/índice | Descrição | Enumeração CHECK | Calculado | Timestamp técnico | Soft delete | Migration | Observações |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | users | id | bigint | Não | nextval('users_id_seq'::regclass) | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | |
| 3 | users | name | character varying(255) | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 4 | users | character varying(255) | Não | Sem predefinição | users_email_unique | INDEX users_email_unique btree | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | |||
| 5 | users | email_verified_at | timestamp(0) without time zone | Sim | NULL | Não | email verified at | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 6 | users | password | character varying(255) | Não | Sem predefinição | Não | password | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 7 | users | remember_token | character varying(100) | Sim | NULL | Não | remember token | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 8 | users | created_at | timestamp(0) without time zone | Sim | NULL | Não | Instante de criação | Não | Não | True | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 9 | users | updated_at | timestamp(0) without time zone | Sim | NULL | Não | Instante da última actualização | Não | Não | True | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 10 | users | two_factor_secret | text | Sim | NULL | Não | two factor secret | Não | Não | False | False | database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php | Legado preservado | ||
| 11 | users | two_factor_recovery_codes | text | Sim | NULL | Não | two factor recovery codes | Não | Não | False | False | database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php | Legado preservado | ||
| 12 | users | two_factor_confirmed_at | timestamp(0) without time zone | Sim | NULL | Não | two factor confirmed at | Não | Não | False | False | database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php | Legado preservado | ||
| 13 | password_reset_tokens | character varying(255) | Não | Sem predefinição | PK | PRIMARY KEY | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | |||
| 14 | password_reset_tokens | token | character varying(255) | Não | Sem predefinição | Não | token | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 15 | password_reset_tokens | created_at | timestamp(0) without time zone | Sim | NULL | Não | Instante de criação | Não | Não | True | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 16 | sessions | id | character varying(255) | Não | Sem predefinição | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | |
| 17 | sessions | user_id | bigint | Sim | NULL | Não | INDEX sessions_user_id_index btree | user id | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | |
| 18 | sessions | ip_address | character varying(45) | Sim | NULL | Não | ip address | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 19 | sessions | user_agent | text | Sim | NULL | Não | user agent | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 20 | sessions | payload | text | Não | Sem predefinição | Não | Conteúdo da submissão/evento; contrato por tipo pendente | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | ||
| 21 | sessions | last_activity | integer | Não | Sem predefinição | Não | INDEX sessions_last_activity_index btree | last activity | Não | Não | False | False | database/migrations/0001_01_01_000000_create_users_table.php | Legado preservado | |
| 22 | cache | key | character varying(255) | Não | Sem predefinição | PK | PRIMARY KEY | key | Não | Não | False | False | database/migrations/0001_01_01_000001_create_cache_table.php | Legado preservado | |
| 23 | cache | value | text | Não | Sem predefinição | Não | value | Não | Não | False | False | database/migrations/0001_01_01_000001_create_cache_table.php | Legado preservado | ||
| 24 | cache | expiration | bigint | Não | Sem predefinição | Não | INDEX cache_expiration_index btree | expiration | Não | Não | False | False | database/migrations/0001_01_01_000001_create_cache_table.php | Legado preservado | |
| 25 | cache_locks | key | character varying(255) | Não | Sem predefinição | PK | PRIMARY KEY | key | Não | Não | False | False | database/migrations/0001_01_01_000001_create_cache_table.php | Legado preservado | |
| 26 | cache_locks | owner | character varying(255) | Não | Sem predefinição | Não | owner | Não | Não | False | False | database/migrations/0001_01_01_000001_create_cache_table.php | Legado preservado | ||
| 27 | cache_locks | expiration | bigint | Não | Sem predefinição | Não | INDEX cache_locks_expiration_index btree | expiration | Não | Não | False | False | database/migrations/0001_01_01_000001_create_cache_table.php | Legado preservado | |
| 28 | jobs | id | bigint | Não | nextval('jobs_id_seq'::regclass) | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | |
| 29 | jobs | queue | character varying(255) | Não | Sem predefinição | Não | INDEX jobs_queue_index btree | queue | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | |
| 30 | jobs | payload | text | Não | Sem predefinição | Não | Conteúdo da submissão/evento; contrato por tipo pendente | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 31 | jobs | attempts | smallint | Não | Sem predefinição | Não | attempts | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 32 | jobs | reserved_at | integer | Sim | NULL | Não | reserved at | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 33 | jobs | available_at | integer | Não | Sem predefinição | Não | available at | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 34 | jobs | created_at | integer | Não | Sem predefinição | Não | Instante de criação | Não | Não | True | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 35 | job_batches | id | character varying(255) | Não | Sem predefinição | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | |
| 36 | job_batches | name | character varying(255) | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 37 | job_batches | total_jobs | integer | Não | Sem predefinição | Não | total jobs | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 38 | job_batches | pending_jobs | integer | Não | Sem predefinição | Não | pending jobs | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 39 | job_batches | failed_jobs | integer | Não | Sem predefinição | Não | failed jobs | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 40 | job_batches | failed_job_ids | text | Não | Sem predefinição | Não | failed job ids | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 41 | job_batches | options | text | Sim | NULL | Não | options | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 42 | job_batches | cancelled_at | integer | Sim | NULL | Não | cancelled at | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 43 | job_batches | created_at | integer | Não | Sem predefinição | Não | Instante de criação | Não | Não | True | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 44 | job_batches | finished_at | integer | Sim | NULL | Não | finished at | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 45 | failed_jobs | id | bigint | Não | nextval('failed_jobs_id_seq'::regclass) | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | |
| 46 | failed_jobs | uuid | character varying(255) | Não | Sem predefinição | failed_jobs_uuid_unique | INDEX failed_jobs_uuid_unique btree | uuid | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | |
| 47 | failed_jobs | connection | character varying(255) | Não | Sem predefinição | Não | INDEX failed_jobs_connection_queue_failed_at_index btree | connection | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | |
| 48 | failed_jobs | queue | character varying(255) | Não | Sem predefinição | Não | INDEX failed_jobs_connection_queue_failed_at_index btree | queue | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | |
| 49 | failed_jobs | payload | text | Não | Sem predefinição | Não | Conteúdo da submissão/evento; contrato por tipo pendente | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 50 | failed_jobs | exception | text | Não | Sem predefinição | Não | exception | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | ||
| 51 | failed_jobs | failed_at | timestamp(0) without time zone | Não | CURRENT_TIMESTAMP | Não | INDEX failed_jobs_connection_queue_failed_at_index btree | failed at | Não | Não | False | False | database/migrations/0001_01_01_000002_create_jobs_table.php | Legado preservado | |
| 52 | passkeys | id | bigint | Não | nextval('passkeys_id_seq'::regclass) | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2024_01_01_000000_create_passkeys_table.php | Legado preservado | |
| 53 | passkeys | user_id | bigint | Não | Sem predefinição | FK -> users.id ON UPDATE NO ACTION ON DELETE CASCADE | Não | INDEX passkeys_user_id_index btree | user id | Não | Não | False | False | database/migrations/2024_01_01_000000_create_passkeys_table.php | Legado preservado |
| 54 | passkeys | name | character varying(255) | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2024_01_01_000000_create_passkeys_table.php | Legado preservado | ||
| 55 | passkeys | credential_id | character varying(255) | Não | Sem predefinição | passkeys_credential_id_unique | INDEX passkeys_credential_id_unique btree | credential id | Não | Não | False | False | database/migrations/2024_01_01_000000_create_passkeys_table.php | Legado preservado | |
| 56 | passkeys | credential | json | Não | Sem predefinição | Não | credential | Não | Não | False | False | database/migrations/2024_01_01_000000_create_passkeys_table.php | Legado preservado | ||
| 57 | passkeys | last_used_at | timestamp(0) without time zone | Sim | NULL | Não | last used at | Não | Não | False | False | database/migrations/2024_01_01_000000_create_passkeys_table.php | Legado preservado | ||
| 58 | passkeys | created_at | timestamp(0) without time zone | Sim | NULL | Não | Instante de criação | Não | Não | True | False | database/migrations/2024_01_01_000000_create_passkeys_table.php | Legado preservado | ||
| 59 | passkeys | updated_at | timestamp(0) without time zone | Sim | NULL | Não | Instante da última actualização | Não | Não | True | False | database/migrations/2024_01_01_000000_create_passkeys_table.php | Legado preservado | ||
| 60 | sectors | id | bigint | Não | nextval('sectors_id_seq'::regclass) | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | |
| 61 | sectors | name | character varying(150) | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | ||
| 62 | sectors | slug | character varying(180) | Não | Sem predefinição | sectors_slug_unique | INDEX sectors_slug_unique btree; INDEX sectors_slug_index btree | slug | Não | Não | False | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | |
| 63 | sectors | short_description | character varying(255) | Sim | NULL | Não | short description | Não | Não | False | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | ||
| 64 | sectors | description | text | Sim | NULL | Não | description | Não | Não | False | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | ||
| 65 | sectors | icon | character varying(100) | Sim | NULL | Não | icon | Não | Não | False | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | ||
| 66 | sectors | sort_order | integer | Não | 0 | Não | sort order | Não | Não | False | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | ||
| 67 | sectors | is_active | boolean | Não | true | Não | INDEX sectors_is_active_index btree | is active | Não | Não | False | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | |
| 68 | sectors | published_at | timestamp(0) without time zone | Sim | NULL | Não | published at | Não | Não | False | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | ||
| 69 | sectors | created_at | timestamp(0) without time zone | Sim | NULL | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | ||
| 70 | sectors | updated_at | timestamp(0) without time zone | Sim | NULL | Não | Instante da última actualização | Não | Não | True | False | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | ||
| 71 | sectors | deleted_at | timestamp(0) without time zone | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_01_01_000001_create_sectors_table.php | Legado preservado | ||
| 72 | opportunities | id | bigint | Não | nextval('opportunities_id_seq'::regclass) | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | |
| 73 | opportunities | sector_id | bigint | Não | Sem predefinição | FK -> sectors.id ON UPDATE CASCADE ON DELETE RESTRICT | Não | INDEX opportunities_sector_id_index btree | sector id | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado |
| 74 | opportunities | reference | character varying(80) | Não | Sem predefinição | opportunities_reference_unique | INDEX opportunities_reference_unique btree; INDEX opportunities_reference_index btree | reference | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | |
| 75 | opportunities | title | character varying(200) | Não | Sem predefinição | Não | title | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 76 | opportunities | slug | character varying(220) | Não | Sem predefinição | opportunities_slug_unique | INDEX opportunities_slug_unique btree; INDEX opportunities_slug_index btree | slug | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | |
| 77 | opportunities | summary | character varying(500) | Sim | NULL | Não | summary | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 78 | opportunities | description | text | Sim | NULL | Não | description | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 79 | opportunities | province | character varying(100) | Sim | NULL | Não | INDEX opportunities_province_index btree | province | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | |
| 80 | opportunities | district | character varying(100) | Sim | NULL | Não | district | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 81 | opportunities | promoter_name | character varying(200) | Sim | NULL | Não | promoter name | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 82 | opportunities | promoter_type | character varying(100) | Sim | NULL | Não | promoter type | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 83 | opportunities | maturity_level | smallint | Sim | NULL | Não | INDEX opportunities_maturity_level_index btree | maturity level | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | |
| 84 | opportunities | maturity_label | character varying(120) | Sim | NULL | Não | maturity label | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 85 | opportunities | estimated_investment_amount | numeric(18,2) | Sim | NULL | Não | estimated investment amount | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 86 | opportunities | estimated_investment_currency | character varying(10) | Não | 'USD' | Não | estimated investment currency | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 87 | opportunities | financing_modality | character varying(120) | Sim | NULL | Não | financing modality | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 88 | opportunities | expected_impact | text | Sim | NULL | Não | expected impact | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 89 | opportunities | status | character varying(50) | Não | 'draft' | Não | INDEX opportunities_status_index btree | status | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | |
| 90 | opportunities | is_featured | boolean | Não | false | Não | INDEX opportunities_is_featured_index btree | is featured | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | |
| 91 | opportunities | published_at | timestamp(0) without time zone | Sim | NULL | Não | published at | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 92 | opportunities | last_validated_at | timestamp(0) without time zone | Sim | NULL | Não | last validated at | Não | Não | False | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 93 | opportunities | created_at | timestamp(0) without time zone | Sim | NULL | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 94 | opportunities | updated_at | timestamp(0) without time zone | Sim | NULL | Não | Instante da última actualização | Não | Não | True | False | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 95 | opportunities | deleted_at | timestamp(0) without time zone | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_01_01_000002_create_opportunities_table.php | Legado preservado | ||
| 96 | interest_requests | id | bigint | Não | nextval('interest_requests_id_seq'::regclass) | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | |
| 97 | interest_requests | opportunity_id | bigint | Sim | NULL | FK -> opportunities.id ON UPDATE CASCADE ON DELETE SET NULL | Não | opportunity id | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | |
| 98 | interest_requests | reference | character varying(80) | Não | Sem predefinição | interest_requests_reference_unique | INDEX interest_requests_reference_unique btree; INDEX interest_requests_reference_index btree | reference | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | |
| 99 | interest_requests | full_name | character varying(150) | Não | Sem predefinição | Não | full name | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 100 | interest_requests | character varying(150) | Não | Sem predefinição | Não | INDEX interest_requests_email_index btree | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | |||
| 101 | interest_requests | phone | character varying(30) | Sim | NULL | Não | phone | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 102 | interest_requests | investor_type | character varying(80) | Não | Sem predefinição | Não | investor type | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 103 | interest_requests | country | character varying(100) | Não | Sem predefinição | Não | country | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 104 | interest_requests | sector_interest | character varying(150) | Não | Sem predefinição | Não | sector interest | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 105 | interest_requests | opportunity_reference | character varying(80) | Sim | NULL | Não | opportunity reference | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 106 | interest_requests | investment_range | character varying(80) | Sim | NULL | Não | investment range | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 107 | interest_requests | message | text | Não | Sem predefinição | Não | message | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 108 | interest_requests | privacy_consent | boolean | Não | false | Não | privacy consent | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 109 | interest_requests | consented_at | timestamp(0) without time zone | Sim | NULL | Não | consented at | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 110 | interest_requests | status | character varying(50) | Não | 'received' | Não | INDEX interest_requests_status_index btree | status | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | |
| 111 | interest_requests | source_page | character varying(255) | Sim | NULL | Não | source page | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 112 | interest_requests | ip_address | inet | Sim | NULL | Não | ip address | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 113 | interest_requests | user_agent | text | Sim | NULL | Não | user agent | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 114 | interest_requests | metadata | json | Sim | NULL | Não | Metadados flexíveis; schema aplicacional pendente | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 115 | interest_requests | reviewed_at | timestamp(0) without time zone | Sim | NULL | Não | reviewed at | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 116 | interest_requests | reviewed_by | bigint | Sim | NULL | FK -> users.id ON UPDATE NO ACTION ON DELETE SET NULL | Não | reviewed by | Não | Não | False | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | |
| 117 | interest_requests | created_at | timestamp(0) without time zone | Sim | NULL | Não | INDEX interest_requests_created_at_index btree | Instante de criação | Não | Não | True | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | |
| 118 | interest_requests | updated_at | timestamp(0) without time zone | Sim | NULL | Não | Instante da última actualização | Não | Não | True | False | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 119 | interest_requests | deleted_at | timestamp(0) without time zone | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_01_01_000003_create_interest_requests_table.php | Legado preservado | ||
| 120 | organizations | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 121 | organizations | source_system | text | Não | 'investmoz' | imz_organizations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_organizations_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 122 | organizations | external_id | text | Sim | NULL | imz_organizations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_organizations_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 123 | organizations | version_no | integer | Não | 1 | Não | imz_organizations_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 124 | organizations | data_classification | text | Não | 'internal' | Não | imz_organizations_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 125 | organizations | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 126 | organizations | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 127 | organizations | updated_at | timestamptz | Não | now() | Não | INDEX imz_organizations_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 128 | organizations | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 129 | organizations | name | text | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 130 | organizations | organization_type | text | Não | Sem predefinição | Não | imz_organizations_check_03: organization_type IN ('public','private','ngo','education') | organization type | organization_type IN ('public','private','ngo','education') | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 131 | memberships | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 132 | memberships | source_system | text | Não | 'investmoz' | imz_memberships_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_memberships_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 133 | memberships | external_id | text | Sim | NULL | imz_memberships_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_memberships_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 134 | memberships | version_no | integer | Não | 1 | Não | imz_memberships_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 135 | memberships | data_classification | text | Não | 'internal' | Não | imz_memberships_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 136 | memberships | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 137 | memberships | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 138 | memberships | updated_at | timestamptz | Não | now() | Não | INDEX imz_memberships_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 139 | memberships | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 140 | memberships | user_id | bigint | Não | Sem predefinição | FK -> users.id ON UPDATE CASCADE ON DELETE CASCADE | imz_memberships_user_id_organization_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_memberships_user_id_idx btree; INDEX imz_memberships_user_id_organization_id_uq btree | user id | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 |
| 141 | memberships | organization_id | uuid | Não | Sem predefinição | FK -> organizations.id ON UPDATE CASCADE ON DELETE CASCADE | imz_memberships_user_id_organization_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_memberships_organization_id_idx btree; INDEX imz_memberships_user_id_organization_id_uq btree | organization id | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 |
| 142 | memberships | role | text | Não | Sem predefinição | Não | imz_memberships_check_03: role IN ('admin','manager','officer','viewer') | role | role IN ('admin','manager','officer','viewer') | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 143 | consents | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 144 | consents | source_system | text | Não | 'investmoz' | imz_consents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_consents_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 145 | consents | external_id | text | Sim | NULL | imz_consents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_consents_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 146 | consents | version_no | integer | Não | 1 | Não | imz_consents_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 147 | consents | data_classification | text | Não | 'internal' | Não | imz_consents_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 148 | consents | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 149 | consents | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 150 | consents | updated_at | timestamptz | Não | now() | Não | INDEX imz_consents_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 151 | consents | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 152 | consents | user_id | bigint | Sim | NULL | FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_consents_user_id_idx btree | user id | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 |
| 153 | consents | subject_ref | text | Não | Sem predefinição | Não | subject ref | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 154 | consents | purpose | text | Não | Sem predefinição | Não | purpose | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 155 | consents | status | text | Não | Sem predefinição | Não | imz_consents_check_03: status IN ('granted','withdrawn','expired') INDEX imz_consents_status_idx btree | status | status IN ('granted','withdrawn','expired') | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | |
| 156 | consents | granted_at | timestamptz | Sim | NULL | Não | granted at | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 157 | consents | withdrawn_at | timestamptz | Sim | NULL | Não | withdrawn at | Não | Não | False | False | database/migrations/2026_09_24_001000_investmoz_identity.php | Reconciliado A.25/A.26 e A.31 | ||
| 158 | documents | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | |
| 159 | documents | source_system | text | Não | 'investmoz' | imz_documents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_documents_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | |
| 160 | documents | external_id | text | Sim | NULL | imz_documents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_documents_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | |
| 161 | documents | version_no | integer | Não | 1 | Não | imz_documents_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | |
| 162 | documents | data_classification | text | Não | 'internal' | Não | imz_documents_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | |
| 163 | documents | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | ||
| 164 | documents | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | ||
| 165 | documents | updated_at | timestamptz | Não | now() | Não | INDEX imz_documents_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | |
| 166 | documents | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | ||
| 167 | documents | file_name | text | Não | Sem predefinição | Não | file name | Não | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | ||
| 168 | documents | media_type | text | Não | Sem predefinição | Não | media type | Não | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | ||
| 169 | documents | storage_key | text | Não | Sem predefinição | imz_documents_storage_key_uq | INDEX imz_documents_storage_key_uq btree | Chave única no armazenamento | Não | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | |
| 170 | documents | sha256 | char(64) | Não | Sem predefinição | Não | imz_documents_check_04: sha256 ~ '^[0-9a-f]{64}$' | SHA-256 hexadecimal; 64 caracteres minúsculos | Não | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | |
| 171 | documents | status | text | Não | Sem predefinição | Não | imz_documents_check_03: status IN ('active','quarantined','deleted') INDEX imz_documents_status_idx btree | status | status IN ('active','quarantined','deleted') | Não | False | False | database/migrations/2026_09_24_002000_investmoz_content.php | Reconciliado A.25/A.26 e A.31 | |
| 172 | geo_locations | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 173 | geo_locations | source_system | text | Não | 'investmoz' | imz_geo_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_geo_locations_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 174 | geo_locations | external_id | text | Sim | NULL | imz_geo_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_geo_locations_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 175 | geo_locations | version_no | integer | Não | 1 | Não | imz_geo_locations_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 176 | geo_locations | data_classification | text | Não | 'internal' | Não | imz_geo_locations_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 177 | geo_locations | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | ||
| 178 | geo_locations | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | ||
| 179 | geo_locations | updated_at | timestamptz | Não | now() | Não | INDEX imz_geo_locations_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 180 | geo_locations | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | ||
| 181 | geo_locations | name | text | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | ||
| 182 | geo_locations | location_type | text | Não | Sem predefinição | imz_geo_locations_location_type_code_uq (composta) WHERE deleted_at IS NULL | imz_geo_locations_check_03: location_type IN ('country','province','district','municipality','site') INDEX imz_geo_locations_location_type_code_uq btree | location type | location_type IN ('country','province','district','municipality','site') | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 183 | geo_locations | parent_id | uuid | Sim | NULL | FK -> geo_locations.id ON UPDATE CASCADE ON DELETE RESTRICT | Não | INDEX imz_geo_locations_parent_id_idx btree | parent id | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 |
| 184 | geo_locations | code | text | Não | Sem predefinição | imz_geo_locations_location_type_code_uq (composta) WHERE deleted_at IS NULL | INDEX imz_geo_locations_location_type_code_uq btree | code | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 185 | geo_geometries | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 186 | geo_geometries | source_system | text | Não | 'investmoz' | imz_geo_geometries_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_geo_geometries_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 187 | geo_geometries | external_id | text | Sim | NULL | imz_geo_geometries_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_geo_geometries_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 188 | geo_geometries | version_no | integer | Não | 1 | Não | imz_geo_geometries_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 189 | geo_geometries | data_classification | text | Não | 'internal' | Não | imz_geo_geometries_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 190 | geo_geometries | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | ||
| 191 | geo_geometries | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | ||
| 192 | geo_geometries | updated_at | timestamptz | Não | now() | Não | INDEX imz_geo_geometries_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 193 | geo_geometries | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | ||
| 194 | geo_geometries | geo_location_id | uuid | Não | Sem predefinição | FK -> geo_locations.id ON UPDATE CASCADE ON DELETE CASCADE | imz_geo_geometries_geo_location_id_geometry_type_uq (composta) WHERE deleted_at IS NULL | INDEX imz_geo_geometries_geo_location_id_idx btree; INDEX imz_geo_geometries_geo_location_id_geometry_type_uq btree | geo location id | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 |
| 195 | geo_geometries | geometry_type | text | Não | Sem predefinição | imz_geo_geometries_geo_location_id_geometry_type_uq (composta) WHERE deleted_at IS NULL | imz_geo_geometries_check_03: geometry_type IN ('point','line','polygon','multipolygon'); imz_geo_geometries_check_08: (geometry_type = 'point' AND GeometryType(geom) = 'POINT') OR (geometry_type = 'line' AND GeometryType(geom) = 'LINESTRING') OR (geometry_type = 'polygon' AND GeometryType(geom) = 'POLYGON') OR (geometry_type = 'multipolygon' AND GeometryType(geom) = 'MULTIPOLYGON') INDEX imz_geo_geometries_geo_location_id_geometry_type_uq btree | Tipo declarado coerente com GeometryType(geom) | geometry_type IN ('point','line','polygon','multipolygon') | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 196 | geo_geometries | geom | geometry(Geometry,4326) | Não | Sem predefinição | Não | imz_geo_geometries_check_04: ST_SRID(geom) = 4326; imz_geo_geometries_check_05: ST_NDims(geom) = 2; imz_geo_geometries_check_06: NOT ST_IsEmpty(geom); imz_geo_geometries_check_07: ST_IsValid(geom); imz_geo_geometries_check_08: (geometry_type = 'point' AND GeometryType(geom) = 'POINT') OR (geometry_type = 'line' AND GeometryType(geom) = 'LINESTRING') OR (geometry_type = 'polygon' AND GeometryType(geom) = 'POLYGON') OR (geometry_type = 'multipolygon' AND GeometryType(geom) = 'MULTIPOLYGON'); imz_geo_geometries_check_09: ST_XMin(Box3D(geom)) >= -180 AND ST_XMax(Box3D(geom)) <= 180 AND ST_YMin(Box3D(geom)) >= -90 AND ST_YMax(Box3D(geom)) <= 90 INDEX imz_geo_geometries_geom_idx gist | Geometria 2D WGS84 SRID 4326, válida e não vazia | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 197 | geo_geometries | properties | jsonb | Não | '{}'::jsonb | Não | INDEX imz_geo_geometries_properties_idx gin | Propriedades geográficas; schema aplicacional pendente | Não | Não | False | False | database/migrations/2026_09_24_003000_investmoz_geography.php | Reconciliado A.25/A.26 e A.31 | |
| 198 | projects | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 199 | projects | source_system | text | Não | 'investmoz' | imz_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_projects_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 200 | projects | external_id | text | Sim | NULL | imz_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_projects_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 201 | projects | version_no | integer | Não | 1 | Não | imz_projects_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 202 | projects | data_classification | text | Não | 'internal' | Não | imz_projects_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 203 | projects | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | ||
| 204 | projects | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | ||
| 205 | projects | updated_at | timestamptz | Não | now() | Não | INDEX imz_projects_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 206 | projects | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | ||
| 207 | projects | code | text | Não | Sem predefinição | imz_projects_code_uq WHERE deleted_at IS NULL | INDEX imz_projects_code_uq btree | code | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 208 | projects | name | text | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | ||
| 209 | projects | status | text | Não | Sem predefinição | Não | imz_projects_check_03: status IN ('draft','planned','active','suspended','completed','cancelled') INDEX imz_projects_status_idx btree | status | status IN ('draft','planned','active','suspended','completed','cancelled') | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 210 | projects | description | text | Sim | NULL | Não | description | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | ||
| 211 | projects | budget_amount | numeric(20,2) | Sim | NULL | Não | imz_projects_check_04: budget_amount IS NULL OR budget_amount >= 0; imz_projects_check_06: (budget_amount IS NULL) = (budget_currency IS NULL) | Orçamento exacto não negativo | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 212 | projects | budget_currency | char(3) | Sim | NULL | Não | imz_projects_check_06: (budget_amount IS NULL) = (budget_currency IS NULL); imz_projects_check_07: budget_currency IS NULL OR budget_currency ~ '^[A-Z]{3}$' | Código monetário do orçamento; lista ISO autorizada pendente | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 213 | projects | start_date | date | Sim | NULL | Não | imz_projects_check_05: end_date IS NULL OR start_date IS NULL OR end_date >= start_date | start date | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 214 | projects | end_date | date | Sim | NULL | Não | imz_projects_check_05: end_date IS NULL OR start_date IS NULL OR end_date >= start_date | end date | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 215 | projects | metadata | jsonb | Não | '{}'::jsonb | Não | INDEX imz_projects_metadata_idx gin | Metadados flexíveis; schema aplicacional pendente | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 216 | project_locations | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 217 | project_locations | source_system | text | Não | 'investmoz' | imz_project_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_project_locations_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 218 | project_locations | external_id | text | Sim | NULL | imz_project_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_project_locations_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 219 | project_locations | version_no | integer | Não | 1 | Não | imz_project_locations_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 220 | project_locations | data_classification | text | Não | 'internal' | Não | imz_project_locations_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 221 | project_locations | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | ||
| 222 | project_locations | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | ||
| 223 | project_locations | updated_at | timestamptz | Não | now() | Não | INDEX imz_project_locations_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 224 | project_locations | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | ||
| 225 | project_locations | project_id | uuid | Não | Sem predefinição | FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE | imz_project_locations_project_id_geo_location_id_role_uq (composta) WHERE deleted_at IS NULL | INDEX imz_project_locations_project_id_idx btree; INDEX imz_project_locations_project_id_geo_location_id_role_uq btree | project id | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 |
| 226 | project_locations | geo_location_id | uuid | Não | Sem predefinição | FK -> geo_locations.id ON UPDATE CASCADE ON DELETE RESTRICT | imz_project_locations_project_id_geo_location_id_role_uq (composta) WHERE deleted_at IS NULL | INDEX imz_project_locations_geo_location_id_idx btree; INDEX imz_project_locations_project_id_geo_location_id_role_uq btree | geo location id | Não | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 |
| 227 | project_locations | role | text | Não | Sem predefinição | imz_project_locations_project_id_geo_location_id_role_uq (composta) WHERE deleted_at IS NULL | imz_project_locations_check_03: role IN ('primary','secondary','impact') INDEX imz_project_locations_project_id_geo_location_id_role_uq btree | role | role IN ('primary','secondary','impact') | Não | False | False | database/migrations/2026_09_24_004000_investmoz_projects.php | Reconciliado A.25/A.26 e A.31 | |
| 228 | economic_clusters | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 229 | economic_clusters | source_system | text | Não | 'investmoz' | imz_economic_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_economic_clusters_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 230 | economic_clusters | external_id | text | Sim | NULL | imz_economic_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_economic_clusters_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 231 | economic_clusters | version_no | integer | Não | 1 | Não | imz_economic_clusters_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 232 | economic_clusters | data_classification | text | Não | 'internal' | Não | imz_economic_clusters_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 233 | economic_clusters | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 234 | economic_clusters | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 235 | economic_clusters | updated_at | timestamptz | Não | now() | Não | INDEX imz_economic_clusters_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 236 | economic_clusters | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 237 | economic_clusters | code | text | Não | Sem predefinição | imz_economic_clusters_code_uq WHERE deleted_at IS NULL | INDEX imz_economic_clusters_code_uq btree | code | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 238 | economic_clusters | name | text | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 239 | economic_clusters | sector | text | Não | Sem predefinição | Não | sector | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 240 | economic_clusters | status | text | Não | Sem predefinição | Não | imz_economic_clusters_check_03: status IN ('planned','active','inactive') INDEX imz_economic_clusters_status_idx btree | status | status IN ('planned','active','inactive') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 241 | economic_clusters | metadata | jsonb | Não | '{}'::jsonb | Não | Metadados flexíveis; schema aplicacional pendente | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 242 | value_chains | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 243 | value_chains | source_system | text | Não | 'investmoz' | imz_value_chains_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_value_chains_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 244 | value_chains | external_id | text | Sim | NULL | imz_value_chains_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_value_chains_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 245 | value_chains | version_no | integer | Não | 1 | Não | imz_value_chains_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 246 | value_chains | data_classification | text | Não | 'internal' | Não | imz_value_chains_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 247 | value_chains | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 248 | value_chains | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 249 | value_chains | updated_at | timestamptz | Não | now() | Não | INDEX imz_value_chains_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 250 | value_chains | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 251 | value_chains | cluster_id | uuid | Não | Sem predefinição | FK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADE | imz_value_chains_cluster_id_code_uq (composta) WHERE deleted_at IS NULL | INDEX imz_value_chains_cluster_id_idx btree; INDEX imz_value_chains_cluster_id_code_uq btree | cluster id | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 |
| 252 | value_chains | code | text | Não | Sem predefinição | imz_value_chains_cluster_id_code_uq (composta) WHERE deleted_at IS NULL | INDEX imz_value_chains_cluster_id_code_uq btree | code | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 253 | value_chains | name | text | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 254 | value_chains | stage | text | Não | Sem predefinição | Não | imz_value_chains_check_03: stage IN ('input','production','processing','logistics','market') | stage | stage IN ('input','production','processing','logistics','market') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 255 | value_chain_links | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 256 | value_chain_links | source_system | text | Não | 'investmoz' | imz_value_chain_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_value_chain_links_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 257 | value_chain_links | external_id | text | Sim | NULL | imz_value_chain_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_value_chain_links_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 258 | value_chain_links | version_no | integer | Não | 1 | Não | imz_value_chain_links_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 259 | value_chain_links | data_classification | text | Não | 'internal' | Não | imz_value_chain_links_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 260 | value_chain_links | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 261 | value_chain_links | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 262 | value_chain_links | updated_at | timestamptz | Não | now() | Não | INDEX imz_value_chain_links_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 263 | value_chain_links | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 264 | value_chain_links | from_value_chain_id | uuid | Não | Sem predefinição | FK -> value_chains.id ON UPDATE CASCADE ON DELETE CASCADE | imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c (composta) WHERE deleted_at IS NULL | imz_value_chain_links_check_04: from_value_chain_id <> to_value_chain_id INDEX imz_value_chain_links_from_value_chain_id_idx btree; INDEX imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c btree | from value chain id | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 |
| 265 | value_chain_links | to_value_chain_id | uuid | Não | Sem predefinição | FK -> value_chains.id ON UPDATE CASCADE ON DELETE CASCADE | imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c (composta) WHERE deleted_at IS NULL | imz_value_chain_links_check_04: from_value_chain_id <> to_value_chain_id INDEX imz_value_chain_links_to_value_chain_id_idx btree; INDEX imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c btree | to value chain id | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 |
| 266 | value_chain_links | link_type | text | Não | Sem predefinição | imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c (composta) WHERE deleted_at IS NULL | imz_value_chain_links_check_03: link_type IN ('supplies','processes','distributes','supports') INDEX imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c btree | link type | link_type IN ('supplies','processes','distributes','supports') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 267 | cluster_projects | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 268 | cluster_projects | source_system | text | Não | 'investmoz' | imz_cluster_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_cluster_projects_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 269 | cluster_projects | external_id | text | Sim | NULL | imz_cluster_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_cluster_projects_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 270 | cluster_projects | version_no | integer | Não | 1 | Não | imz_cluster_projects_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 271 | cluster_projects | data_classification | text | Não | 'internal' | Não | imz_cluster_projects_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 272 | cluster_projects | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 273 | cluster_projects | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 274 | cluster_projects | updated_at | timestamptz | Não | now() | Não | INDEX imz_cluster_projects_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 275 | cluster_projects | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 276 | cluster_projects | cluster_id | uuid | Não | Sem predefinição | FK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADE | imz_cluster_projects_cluster_id_project_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_cluster_projects_cluster_id_idx btree; INDEX imz_cluster_projects_cluster_id_project_id_uq btree | cluster id | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 |
| 277 | cluster_projects | project_id | uuid | Não | Sem predefinição | FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE | imz_cluster_projects_cluster_id_project_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_cluster_projects_project_id_idx btree; INDEX imz_cluster_projects_cluster_id_project_id_uq btree | project id | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 |
| 278 | cluster_projects | role | text | Não | Sem predefinição | Não | imz_cluster_projects_check_03: role IN ('anchor','complementary','supporting') | role | role IN ('anchor','complementary','supporting') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 279 | anchor_project_links | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 280 | anchor_project_links | source_system | text | Não | 'investmoz' | imz_anchor_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_anchor_project_links_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 281 | anchor_project_links | external_id | text | Sim | NULL | imz_anchor_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_anchor_project_links_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 282 | anchor_project_links | version_no | integer | Não | 1 | Não | imz_anchor_project_links_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 283 | anchor_project_links | data_classification | text | Não | 'internal' | Não | imz_anchor_project_links_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 284 | anchor_project_links | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 285 | anchor_project_links | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 286 | anchor_project_links | updated_at | timestamptz | Não | now() | Não | INDEX imz_anchor_project_links_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 287 | anchor_project_links | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 288 | anchor_project_links | anchor_project_id | uuid | Não | Sem predefinição | FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE | imz_anchor_project_links_anchor_project_id_cluster_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_anchor_project_links_anchor_project_id_idx btree; INDEX imz_anchor_project_links_anchor_project_id_cluster_id_uq btree | anchor project id | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 |
| 289 | anchor_project_links | cluster_id | uuid | Não | Sem predefinição | FK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADE | imz_anchor_project_links_anchor_project_id_cluster_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_anchor_project_links_cluster_id_idx btree; INDEX imz_anchor_project_links_anchor_project_id_cluster_id_uq btree | cluster id | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 |
| 290 | anchor_project_links | rationale | text | Não | Sem predefinição | Não | rationale | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 291 | complementary_project_links | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 292 | complementary_project_links | source_system | text | Não | 'investmoz' | imz_complementary_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_complementary_project_links_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 293 | complementary_project_links | external_id | text | Sim | NULL | imz_complementary_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_complementary_project_links_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 294 | complementary_project_links | version_no | integer | Não | 1 | Não | imz_complementary_project_links_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 295 | complementary_project_links | data_classification | text | Não | 'internal' | Não | imz_complementary_project_links_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 296 | complementary_project_links | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 297 | complementary_project_links | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 298 | complementary_project_links | updated_at | timestamptz | Não | now() | Não | INDEX imz_complementary_project_links_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 299 | complementary_project_links | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | ||
| 300 | complementary_project_links | anchor_project_id | uuid | Não | Sem predefinição | FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE | imz_complementary_project_links_anchor_project_id_co_90eddcd25a (composta) WHERE deleted_at IS NULL | imz_complementary_project_links_check_04: anchor_project_id<>complementary_project_id INDEX imz_complementary_project_links_anchor_project_id_idx btree; INDEX imz_complementary_project_links_anchor_project_id_co_90eddcd25a btree | anchor project id | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 |
| 301 | complementary_project_links | complementary_project_id | uuid | Não | Sem predefinição | FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE | imz_complementary_project_links_anchor_project_id_co_90eddcd25a (composta) WHERE deleted_at IS NULL | imz_complementary_project_links_check_04: anchor_project_id<>complementary_project_id INDEX imz_complementary_project_links_complementary_project_id_idx btree; INDEX imz_complementary_project_links_anchor_project_id_co_90eddcd25a btree | complementary project id | Não | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 |
| 302 | complementary_project_links | relation_type | text | Não | Sem predefinição | imz_complementary_project_links_anchor_project_id_co_90eddcd25a (composta) WHERE deleted_at IS NULL | imz_complementary_project_links_check_03: relation_type IN ('dependency','enabler','supplier','market') INDEX imz_complementary_project_links_anchor_project_id_co_90eddcd25a btree | relation type | relation_type IN ('dependency','enabler','supplier','market') | Não | False | False | database/migrations/2026_09_24_005000_investmoz_clusters.php | Reconciliado A.25/A.26 e A.31 | |
| 303 | development_corridors | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 304 | development_corridors | source_system | text | Não | 'investmoz' | imz_development_corridors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_development_corridors_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 305 | development_corridors | external_id | text | Sim | NULL | imz_development_corridors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_development_corridors_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 306 | development_corridors | version_no | integer | Não | 1 | Não | imz_development_corridors_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 307 | development_corridors | data_classification | text | Não | 'internal' | Não | imz_development_corridors_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 308 | development_corridors | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 309 | development_corridors | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 310 | development_corridors | updated_at | timestamptz | Não | now() | Não | INDEX imz_development_corridors_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 311 | development_corridors | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 312 | development_corridors | code | text | Não | Sem predefinição | imz_development_corridors_code_uq WHERE deleted_at IS NULL | INDEX imz_development_corridors_code_uq btree | code | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 313 | development_corridors | name | text | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 314 | development_corridors | status | text | Não | Sem predefinição | Não | imz_development_corridors_check_03: status IN ('proposed','active','closed') INDEX imz_development_corridors_status_idx btree | status | status IN ('proposed','active','closed') | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 315 | development_corridors | description | text | Sim | NULL | Não | description | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 316 | corridor_locations | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 317 | corridor_locations | source_system | text | Não | 'investmoz' | imz_corridor_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_corridor_locations_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 318 | corridor_locations | external_id | text | Sim | NULL | imz_corridor_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_corridor_locations_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 319 | corridor_locations | version_no | integer | Não | 1 | Não | imz_corridor_locations_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 320 | corridor_locations | data_classification | text | Não | 'internal' | Não | imz_corridor_locations_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 321 | corridor_locations | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 322 | corridor_locations | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 323 | corridor_locations | updated_at | timestamptz | Não | now() | Não | INDEX imz_corridor_locations_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 324 | corridor_locations | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 325 | corridor_locations | corridor_id | uuid | Não | Sem predefinição | FK -> development_corridors.id ON UPDATE CASCADE ON DELETE CASCADE | imz_corridor_locations_corridor_id_geo_location_id_uq (composta) WHERE deleted_at IS NULL; imz_corridor_locations_corridor_id_sequence_no_uq (composta) WHERE deleted_at IS NULL | INDEX imz_corridor_locations_corridor_id_idx btree; INDEX imz_corridor_locations_corridor_id_geo_location_id_uq btree; INDEX imz_corridor_locations_corridor_id_sequence_no_uq btree | corridor id | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 |
| 326 | corridor_locations | geo_location_id | uuid | Não | Sem predefinição | FK -> geo_locations.id ON UPDATE CASCADE ON DELETE RESTRICT | imz_corridor_locations_corridor_id_geo_location_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_corridor_locations_geo_location_id_idx btree; INDEX imz_corridor_locations_corridor_id_geo_location_id_uq btree | geo location id | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 |
| 327 | corridor_locations | sequence_no | integer | Não | Sem predefinição | imz_corridor_locations_corridor_id_sequence_no_uq (composta) WHERE deleted_at IS NULL | imz_corridor_locations_check_03: sequence_no>0 INDEX imz_corridor_locations_corridor_id_sequence_no_uq btree | sequence no | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 328 | corridor_projects | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 329 | corridor_projects | source_system | text | Não | 'investmoz' | imz_corridor_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_corridor_projects_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 330 | corridor_projects | external_id | text | Sim | NULL | imz_corridor_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_corridor_projects_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 331 | corridor_projects | version_no | integer | Não | 1 | Não | imz_corridor_projects_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 332 | corridor_projects | data_classification | text | Não | 'internal' | Não | imz_corridor_projects_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 333 | corridor_projects | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 334 | corridor_projects | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 335 | corridor_projects | updated_at | timestamptz | Não | now() | Não | INDEX imz_corridor_projects_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 336 | corridor_projects | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 337 | corridor_projects | corridor_id | uuid | Não | Sem predefinição | FK -> development_corridors.id ON UPDATE CASCADE ON DELETE CASCADE | imz_corridor_projects_corridor_id_project_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_corridor_projects_corridor_id_idx btree; INDEX imz_corridor_projects_corridor_id_project_id_uq btree | corridor id | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 |
| 338 | corridor_projects | project_id | uuid | Não | Sem predefinição | FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE | imz_corridor_projects_corridor_id_project_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_corridor_projects_project_id_idx btree; INDEX imz_corridor_projects_corridor_id_project_id_uq btree | project id | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 |
| 339 | corridor_clusters | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 340 | corridor_clusters | source_system | text | Não | 'investmoz' | imz_corridor_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_corridor_clusters_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 341 | corridor_clusters | external_id | text | Sim | NULL | imz_corridor_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_corridor_clusters_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 342 | corridor_clusters | version_no | integer | Não | 1 | Não | imz_corridor_clusters_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 343 | corridor_clusters | data_classification | text | Não | 'internal' | Não | imz_corridor_clusters_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 344 | corridor_clusters | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 345 | corridor_clusters | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 346 | corridor_clusters | updated_at | timestamptz | Não | now() | Não | INDEX imz_corridor_clusters_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | |
| 347 | corridor_clusters | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 | ||
| 348 | corridor_clusters | corridor_id | uuid | Não | Sem predefinição | FK -> development_corridors.id ON UPDATE CASCADE ON DELETE CASCADE | imz_corridor_clusters_corridor_id_cluster_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_corridor_clusters_corridor_id_idx btree; INDEX imz_corridor_clusters_corridor_id_cluster_id_uq btree | corridor id | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 |
| 349 | corridor_clusters | cluster_id | uuid | Não | Sem predefinição | FK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADE | imz_corridor_clusters_corridor_id_cluster_id_uq (composta) WHERE deleted_at IS NULL | INDEX imz_corridor_clusters_cluster_id_idx btree; INDEX imz_corridor_clusters_corridor_id_cluster_id_uq btree | cluster id | Não | Não | False | False | database/migrations/2026_09_24_006000_investmoz_corridors.php | Reconciliado A.25/A.26 e A.31 |
| 350 | investors | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 351 | investors | source_system | text | Não | 'investmoz' | imz_investors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_investors_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 352 | investors | external_id | text | Sim | NULL | imz_investors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_investors_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 353 | investors | version_no | integer | Não | 1 | Não | imz_investors_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 354 | investors | data_classification | text | Não | 'internal' | Não | imz_investors_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 355 | investors | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 356 | investors | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 357 | investors | updated_at | timestamptz | Não | now() | Não | INDEX imz_investors_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 358 | investors | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 359 | investors | organization_id | uuid | Sim | NULL | FK -> organizations.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_investors_organization_id_idx btree | organization id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 360 | investors | legal_name | text | Não | Sem predefinição | Não | legal name | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 361 | investors | investor_type | text | Não | Sem predefinição | Não | imz_investors_check_03: investor_type IN ('domestic','foreign','institutional','individual') | investor type | investor_type IN ('domestic','foreign','institutional','individual') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 362 | investors | status | text | Não | Sem predefinição | Não | imz_investors_check_04: status IN ('prospect','active','inactive') INDEX imz_investors_status_idx btree | status | status IN ('prospect','active','inactive') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 363 | contacts | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 364 | contacts | source_system | text | Não | 'investmoz' | imz_contacts_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_contacts_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 365 | contacts | external_id | text | Sim | NULL | imz_contacts_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_contacts_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 366 | contacts | version_no | integer | Não | 1 | Não | imz_contacts_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 367 | contacts | data_classification | text | Não | 'internal' | Não | imz_contacts_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 368 | contacts | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 369 | contacts | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 370 | contacts | updated_at | timestamptz | Não | now() | Não | INDEX imz_contacts_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 371 | contacts | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 372 | contacts | full_name | text | Não | Sem predefinição | Não | full name | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 373 | contacts | text | Sim | NULL | Não | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||||
| 374 | contacts | phone | text | Sim | NULL | Não | phone | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 375 | investor_contacts | investor_id | uuid | Não | Sem predefinição | PK; FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADE | PRIMARY KEY composta: investor_id, contact_id | INDEX imz_investor_contacts_investor_id_idx btree | investor id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 376 | investor_contacts | contact_id | uuid | Não | Sem predefinição | PK; FK -> contacts.id ON UPDATE CASCADE ON DELETE CASCADE | PRIMARY KEY composta: investor_id, contact_id | INDEX imz_investor_contacts_contact_id_idx btree | contact id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 377 | investor_contacts | is_primary | boolean | Não | false | Não | Contacto principal deste investidor; limite quantitativo pendente | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 378 | investor_contacts | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 379 | investor_contacts | updated_at | timestamptz | Não | now() | Não | INDEX imz_investor_contacts_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 380 | leads | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 381 | leads | source_system | text | Não | 'investmoz' | imz_leads_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_leads_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 382 | leads | external_id | text | Sim | NULL | imz_leads_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_leads_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 383 | leads | version_no | integer | Não | 1 | Não | imz_leads_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 384 | leads | data_classification | text | Não | 'internal' | Não | imz_leads_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 385 | leads | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 386 | leads | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 387 | leads | updated_at | timestamptz | Não | now() | Não | INDEX imz_leads_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 388 | leads | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 389 | leads | investor_id | uuid | Sim | NULL | FK -> investors.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_leads_investor_id_idx btree | investor id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 390 | leads | owner_user_id | bigint | Sim | NULL | FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_leads_owner_user_id_idx btree | owner user id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 391 | leads | title | text | Não | Sem predefinição | Não | title | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 392 | leads | status | text | Não | Sem predefinição | Não | imz_leads_check_03: status IN ('new','qualified','disqualified','converted') INDEX imz_leads_status_idx btree | status | status IN ('new','qualified','disqualified','converted') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 393 | leads | estimated_amount | numeric(20,2) | Sim | NULL | Não | imz_leads_check_04: (estimated_amount IS NULL)=(currency IS NULL); imz_leads_check_05: estimated_amount IS NULL OR estimated_amount >= 0 | Montante estimado exacto não negativo | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 394 | leads | currency | char(3) | Sim | NULL | Não | imz_leads_check_04: (estimated_amount IS NULL)=(currency IS NULL); imz_leads_check_06: currency IS NULL OR currency ~ '^[A-Z]{3}$' | Código monetário; três letras maiúsculas; lista ISO autorizada pendente | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 395 | crm_opportunities | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 396 | crm_opportunities | source_system | text | Não | 'investmoz' | imz_crm_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_crm_opportunities_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 397 | crm_opportunities | external_id | text | Sim | NULL | imz_crm_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_crm_opportunities_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 398 | crm_opportunities | version_no | integer | Não | 1 | Não | imz_crm_opportunities_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 399 | crm_opportunities | data_classification | text | Não | 'internal' | Não | imz_crm_opportunities_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 400 | crm_opportunities | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 401 | crm_opportunities | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 402 | crm_opportunities | updated_at | timestamptz | Não | now() | Não | INDEX imz_crm_opportunities_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 403 | crm_opportunities | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 404 | crm_opportunities | lead_id | uuid | Sim | NULL | FK -> leads.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_crm_opportunities_lead_id_idx btree | lead id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 405 | crm_opportunities | project_id | uuid | Sim | NULL | FK -> projects.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_crm_opportunities_project_id_idx btree | project id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 406 | crm_opportunities | owner_user_id | bigint | Sim | NULL | FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_crm_opportunities_owner_user_id_idx btree | owner user id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 407 | crm_opportunities | stage | text | Não | Sem predefinição | Não | imz_crm_opportunities_check_03: stage IN ('discovery','assessment','negotiation','approved','lost') | stage | stage IN ('discovery','assessment','negotiation','approved','lost') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 408 | crm_opportunities | amount | numeric(20,2) | Sim | NULL | Não | imz_crm_opportunities_check_05: (amount IS NULL)=(currency IS NULL); imz_crm_opportunities_check_06: amount IS NULL OR amount >= 0 | Montante monetário exacto não negativo | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 409 | crm_opportunities | currency | char(3) | Sim | NULL | Não | imz_crm_opportunities_check_05: (amount IS NULL)=(currency IS NULL); imz_crm_opportunities_check_07: currency IS NULL OR currency ~ '^[A-Z]{3}$' | Código monetário; três letras maiúsculas; lista ISO autorizada pendente | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 410 | crm_opportunities | probability | numeric(5,2) | Sim | NULL | Não | imz_crm_opportunities_check_04: probability BETWEEN 0 AND 100 | probability | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 411 | activities | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 412 | activities | source_system | text | Não | 'investmoz' | imz_activities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_activities_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 413 | activities | external_id | text | Sim | NULL | imz_activities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_activities_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 414 | activities | version_no | integer | Não | 1 | Não | imz_activities_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 415 | activities | data_classification | text | Não | 'internal' | Não | imz_activities_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 416 | activities | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 417 | activities | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 418 | activities | updated_at | timestamptz | Não | now() | Não | INDEX imz_activities_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 419 | activities | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 420 | activities | investor_id | uuid | Sim | NULL | FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADE | Não | INDEX imz_activities_investor_id_idx btree | investor id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 421 | activities | opportunity_id | uuid | Sim | NULL | FK -> crm_opportunities.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_activities_opportunity_id_idx btree | opportunity id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 422 | activities | actor_user_id | bigint | Sim | NULL | FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_activities_actor_user_id_idx btree | actor user id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 423 | activities | activity_type | text | Não | Sem predefinição | Não | imz_activities_check_03: activity_type IN ('call','meeting','email','note') | activity type | activity_type IN ('call','meeting','email','note') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 424 | activities | occurred_at | timestamptz | Não | Sem predefinição | Não | occurred at | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 425 | activities | summary | text | Não | Sem predefinição | Não | summary | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 426 | tasks | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 427 | tasks | source_system | text | Não | 'investmoz' | imz_tasks_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_tasks_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 428 | tasks | external_id | text | Sim | NULL | imz_tasks_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_tasks_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 429 | tasks | version_no | integer | Não | 1 | Não | imz_tasks_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 430 | tasks | data_classification | text | Não | 'internal' | Não | imz_tasks_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 431 | tasks | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 432 | tasks | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 433 | tasks | updated_at | timestamptz | Não | now() | Não | INDEX imz_tasks_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 434 | tasks | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 435 | tasks | assignee_user_id | bigint | Sim | NULL | FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_tasks_assignee_user_id_idx btree | assignee user id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 436 | tasks | opportunity_id | uuid | Sim | NULL | FK -> crm_opportunities.id ON UPDATE CASCADE ON DELETE CASCADE | Não | INDEX imz_tasks_opportunity_id_idx btree | opportunity id | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 |
| 437 | tasks | title | text | Não | Sem predefinição | Não | title | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 438 | tasks | status | text | Não | Sem predefinição | Não | imz_tasks_check_03: status IN ('open','in_progress','done','cancelled') INDEX imz_tasks_status_idx btree | status | status IN ('open','in_progress','done','cancelled') | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | |
| 439 | tasks | due_at | timestamptz | Sim | NULL | Não | due at | Não | Não | False | False | database/migrations/2026_09_24_007000_investmoz_crm.php | Reconciliado A.25/A.26 e A.31 | ||
| 440 | investor_journeys | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 441 | investor_journeys | source_system | text | Não | 'investmoz' | imz_investor_journeys_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_investor_journeys_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 442 | investor_journeys | external_id | text | Sim | NULL | imz_investor_journeys_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_investor_journeys_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 443 | investor_journeys | version_no | integer | Não | 1 | Não | imz_investor_journeys_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 444 | investor_journeys | data_classification | text | Não | 'internal' | Não | imz_investor_journeys_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 445 | investor_journeys | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 446 | investor_journeys | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 447 | investor_journeys | updated_at | timestamptz | Não | now() | Não | INDEX imz_investor_journeys_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 448 | investor_journeys | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 449 | investor_journeys | investor_id | uuid | Não | Sem predefinição | FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADE | Não | INDEX imz_investor_journeys_investor_id_idx btree | investor id | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 450 | investor_journeys | opportunity_id | uuid | Sim | NULL | FK -> crm_opportunities.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_investor_journeys_opportunity_id_idx btree | opportunity id | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 451 | investor_journeys | status | text | Não | Sem predefinição | Não | imz_investor_journeys_check_03: status IN ('started','active','completed','cancelled') INDEX imz_investor_journeys_status_idx btree | status | status IN ('started','active','completed','cancelled') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 452 | investor_journeys | started_at | timestamptz | Não | now() | Não | started at | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 453 | journey_steps | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 454 | journey_steps | source_system | text | Não | 'investmoz' | imz_journey_steps_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_journey_steps_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 455 | journey_steps | external_id | text | Sim | NULL | imz_journey_steps_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_journey_steps_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 456 | journey_steps | version_no | integer | Não | 1 | Não | imz_journey_steps_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 457 | journey_steps | data_classification | text | Não | 'internal' | Não | imz_journey_steps_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 458 | journey_steps | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 459 | journey_steps | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 460 | journey_steps | updated_at | timestamptz | Não | now() | Não | INDEX imz_journey_steps_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 461 | journey_steps | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 462 | journey_steps | journey_id | uuid | Não | Sem predefinição | FK -> investor_journeys.id ON UPDATE CASCADE ON DELETE CASCADE | imz_journey_steps_journey_id_sequence_no_uq (composta) WHERE deleted_at IS NULL; imz_journey_steps_journey_id_step_code_uq (composta) WHERE deleted_at IS NULL | INDEX imz_journey_steps_journey_id_idx btree; INDEX imz_journey_steps_journey_id_sequence_no_uq btree; INDEX imz_journey_steps_journey_id_step_code_uq btree | journey id | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 463 | journey_steps | step_code | text | Não | Sem predefinição | imz_journey_steps_journey_id_step_code_uq (composta) WHERE deleted_at IS NULL | INDEX imz_journey_steps_journey_id_step_code_uq btree | step code | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 464 | journey_steps | sequence_no | integer | Não | Sem predefinição | imz_journey_steps_journey_id_sequence_no_uq (composta) WHERE deleted_at IS NULL | imz_journey_steps_check_03: sequence_no>0 INDEX imz_journey_steps_journey_id_sequence_no_uq btree | sequence no | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 465 | journey_steps | status | text | Não | Sem predefinição | Não | imz_journey_steps_check_04: status IN ('pending','active','completed','blocked') INDEX imz_journey_steps_status_idx btree | status | status IN ('pending','active','completed','blocked') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 466 | submissions | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 467 | submissions | source_system | text | Não | 'investmoz' | imz_submissions_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_submissions_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 468 | submissions | external_id | text | Sim | NULL | imz_submissions_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_submissions_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 469 | submissions | version_no | integer | Não | 1 | Não | imz_submissions_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 470 | submissions | data_classification | text | Não | 'internal' | Não | imz_submissions_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 471 | submissions | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 472 | submissions | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 473 | submissions | updated_at | timestamptz | Não | now() | Não | INDEX imz_submissions_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 474 | submissions | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 475 | submissions | journey_step_id | uuid | Não | Sem predefinição | FK -> journey_steps.id ON UPDATE CASCADE ON DELETE CASCADE | Não | INDEX imz_submissions_journey_step_id_idx btree | journey step id | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 476 | submissions | submitted_by | bigint | Sim | NULL | FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_submissions_submitted_by_idx btree | submitted by | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 477 | submissions | status | text | Não | Sem predefinição | Não | imz_submissions_check_03: status IN ('draft','submitted','accepted','rejected') INDEX imz_submissions_status_idx btree | status | status IN ('draft','submitted','accepted','rejected') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 478 | submissions | payload | jsonb | Não | '{}'::jsonb | Não | INDEX imz_submissions_payload_idx gin | Conteúdo da submissão/evento; contrato por tipo pendente | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 479 | submissions | submitted_at | timestamptz | Sim | NULL | Não | submitted at | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 480 | aftercare_plans | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 481 | aftercare_plans | source_system | text | Não | 'investmoz' | imz_aftercare_plans_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_aftercare_plans_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 482 | aftercare_plans | external_id | text | Sim | NULL | imz_aftercare_plans_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_aftercare_plans_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 483 | aftercare_plans | version_no | integer | Não | 1 | Não | imz_aftercare_plans_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 484 | aftercare_plans | data_classification | text | Não | 'internal' | Não | imz_aftercare_plans_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 485 | aftercare_plans | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 486 | aftercare_plans | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 487 | aftercare_plans | updated_at | timestamptz | Não | now() | Não | INDEX imz_aftercare_plans_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 488 | aftercare_plans | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 489 | aftercare_plans | investor_id | uuid | Não | Sem predefinição | FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADE | Não | INDEX imz_aftercare_plans_investor_id_idx btree | investor id | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 490 | aftercare_plans | project_id | uuid | Sim | NULL | FK -> projects.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_aftercare_plans_project_id_idx btree | project id | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 491 | aftercare_plans | owner_user_id | bigint | Sim | NULL | FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_aftercare_plans_owner_user_id_idx btree | owner user id | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 492 | aftercare_plans | status | text | Não | Sem predefinição | Não | imz_aftercare_plans_check_03: status IN ('draft','active','closed') INDEX imz_aftercare_plans_status_idx btree | status | status IN ('draft','active','closed') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 493 | aftercare_plans | review_date | date | Sim | NULL | Não | review date | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 494 | constraints | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 495 | constraints | source_system | text | Não | 'investmoz' | imz_constraints_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_constraints_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 496 | constraints | external_id | text | Sim | NULL | imz_constraints_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_constraints_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 497 | constraints | version_no | integer | Não | 1 | Não | imz_constraints_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 498 | constraints | data_classification | text | Não | 'internal' | Não | imz_constraints_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 499 | constraints | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 500 | constraints | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 501 | constraints | updated_at | timestamptz | Não | now() | Não | INDEX imz_constraints_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 502 | constraints | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 503 | constraints | aftercare_plan_id | uuid | Não | Sem predefinição | FK -> aftercare_plans.id ON UPDATE CASCADE ON DELETE CASCADE | Não | INDEX imz_constraints_aftercare_plan_id_idx btree | aftercare plan id | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 504 | constraints | category | text | Não | Sem predefinição | Não | category | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 505 | constraints | description | text | Não | Sem predefinição | Não | description | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 506 | constraints | severity | text | Não | Sem predefinição | Não | imz_constraints_check_03: severity IN ('low','medium','high','critical') | severity | severity IN ('low','medium','high','critical') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 507 | constraints | status | text | Não | Sem predefinição | Não | imz_constraints_check_04: status IN ('open','mitigating','resolved') INDEX imz_constraints_status_idx btree | status | status IN ('open','mitigating','resolved') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 508 | escalations | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 509 | escalations | source_system | text | Não | 'investmoz' | imz_escalations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_escalations_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 510 | escalations | external_id | text | Sim | NULL | imz_escalations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_escalations_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 511 | escalations | version_no | integer | Não | 1 | Não | imz_escalations_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 512 | escalations | data_classification | text | Não | 'internal' | Não | imz_escalations_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 513 | escalations | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 514 | escalations | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 515 | escalations | updated_at | timestamptz | Não | now() | Não | INDEX imz_escalations_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 516 | escalations | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 517 | escalations | constraint_id | uuid | Não | Sem predefinição | FK -> constraints.id ON UPDATE CASCADE ON DELETE CASCADE | Não | INDEX imz_escalations_constraint_id_idx btree | constraint id | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 518 | escalations | escalated_by | bigint | Sim | NULL | FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_escalations_escalated_by_idx btree | escalated by | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 |
| 519 | escalations | level | text | Não | Sem predefinição | Não | imz_escalations_check_03: level IN ('operational','management','executive') | level | level IN ('operational','management','executive') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 520 | escalations | status | text | Não | Sem predefinição | Não | imz_escalations_check_04: status IN ('open','acknowledged','closed') INDEX imz_escalations_status_idx btree | status | status IN ('open','acknowledged','closed') | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | |
| 521 | escalations | escalated_at | timestamptz | Não | now() | Não | escalated at | Não | Não | False | False | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php | Reconciliado A.25/A.26 e A.31 | ||
| 522 | skills | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 523 | skills | source_system | text | Não | 'investmoz' | imz_skills_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_skills_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 524 | skills | external_id | text | Sim | NULL | imz_skills_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_skills_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 525 | skills | version_no | integer | Não | 1 | Não | imz_skills_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 526 | skills | data_classification | text | Não | 'internal' | Não | imz_skills_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 527 | skills | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 528 | skills | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 529 | skills | updated_at | timestamptz | Não | now() | Não | INDEX imz_skills_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 530 | skills | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 531 | skills | code | text | Não | Sem predefinição | imz_skills_code_uq WHERE deleted_at IS NULL | INDEX imz_skills_code_uq btree | code | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 532 | skills | name | text | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 533 | occupations | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 534 | occupations | source_system | text | Não | 'investmoz' | imz_occupations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_occupations_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 535 | occupations | external_id | text | Sim | NULL | imz_occupations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_occupations_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 536 | occupations | version_no | integer | Não | 1 | Não | imz_occupations_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 537 | occupations | data_classification | text | Não | 'internal' | Não | imz_occupations_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 538 | occupations | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 539 | occupations | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 540 | occupations | updated_at | timestamptz | Não | now() | Não | INDEX imz_occupations_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 541 | occupations | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 542 | occupations | code | text | Não | Sem predefinição | imz_occupations_code_uq WHERE deleted_at IS NULL | INDEX imz_occupations_code_uq btree | code | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 543 | occupations | name | text | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 544 | training_needs | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 545 | training_needs | source_system | text | Não | 'investmoz' | imz_training_needs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_training_needs_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 546 | training_needs | external_id | text | Sim | NULL | imz_training_needs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_training_needs_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 547 | training_needs | version_no | integer | Não | 1 | Não | imz_training_needs_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 548 | training_needs | data_classification | text | Não | 'internal' | Não | imz_training_needs_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 549 | training_needs | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 550 | training_needs | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 551 | training_needs | updated_at | timestamptz | Não | now() | Não | INDEX imz_training_needs_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 552 | training_needs | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 553 | training_needs | project_id | uuid | Sim | NULL | FK -> projects.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_training_needs_project_id_idx btree | project id | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 |
| 554 | training_needs | occupation_id | uuid | Sim | NULL | FK -> occupations.id ON UPDATE CASCADE ON DELETE RESTRICT | Não | INDEX imz_training_needs_occupation_id_idx btree | occupation id | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 |
| 555 | training_needs | skill_id | uuid | Sim | NULL | FK -> skills.id ON UPDATE CASCADE ON DELETE RESTRICT | Não | INDEX imz_training_needs_skill_id_idx btree | skill id | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 |
| 556 | training_needs | quantity | integer | Não | Sem predefinição | Não | imz_training_needs_check_03: quantity>0 | quantity | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 557 | training_needs | priority | text | Não | Sem predefinição | Não | imz_training_needs_check_04: priority IN ('Must','Should','Could') | priority | priority IN ('Must','Should','Could') | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 558 | training_providers | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 559 | training_providers | source_system | text | Não | 'investmoz' | imz_training_providers_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_training_providers_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 560 | training_providers | external_id | text | Sim | NULL | imz_training_providers_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_training_providers_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 561 | training_providers | version_no | integer | Não | 1 | Não | imz_training_providers_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 562 | training_providers | data_classification | text | Não | 'internal' | Não | imz_training_providers_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 563 | training_providers | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 564 | training_providers | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 565 | training_providers | updated_at | timestamptz | Não | now() | Não | INDEX imz_training_providers_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 566 | training_providers | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 567 | training_providers | organization_id | uuid | Sim | NULL | FK -> organizations.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_training_providers_organization_id_idx btree | organization id | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 |
| 568 | training_providers | name | text | Não | Sem predefinição | Não | name | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 569 | training_providers | status | text | Não | Sem predefinição | Não | imz_training_providers_check_03: status IN ('candidate','approved','inactive') INDEX imz_training_providers_status_idx btree | status | status IN ('candidate','approved','inactive') | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 570 | courses | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 571 | courses | source_system | text | Não | 'investmoz' | imz_courses_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_courses_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 572 | courses | external_id | text | Sim | NULL | imz_courses_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_courses_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 573 | courses | version_no | integer | Não | 1 | Não | imz_courses_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 574 | courses | data_classification | text | Não | 'internal' | Não | imz_courses_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 575 | courses | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 576 | courses | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 577 | courses | updated_at | timestamptz | Não | now() | Não | INDEX imz_courses_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 578 | courses | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 579 | courses | provider_id | uuid | Não | Sem predefinição | FK -> training_providers.id ON UPDATE CASCADE ON DELETE CASCADE | imz_courses_provider_id_code_uq (composta) WHERE deleted_at IS NULL | INDEX imz_courses_provider_id_idx btree; INDEX imz_courses_provider_id_code_uq btree | provider id | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 |
| 580 | courses | code | text | Não | Sem predefinição | imz_courses_provider_id_code_uq (composta) WHERE deleted_at IS NULL | INDEX imz_courses_provider_id_code_uq btree | code | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 581 | courses | title | text | Não | Sem predefinição | Não | title | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 582 | courses | status | text | Não | Sem predefinição | Não | imz_courses_check_03: status IN ('draft','published','retired') INDEX imz_courses_status_idx btree | status | status IN ('draft','published','retired') | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 583 | education_opportunities | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 584 | education_opportunities | source_system | text | Não | 'investmoz' | imz_education_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_education_opportunities_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 585 | education_opportunities | external_id | text | Sim | NULL | imz_education_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_education_opportunities_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 586 | education_opportunities | version_no | integer | Não | 1 | Não | imz_education_opportunities_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 587 | education_opportunities | data_classification | text | Não | 'internal' | Não | imz_education_opportunities_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 588 | education_opportunities | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 589 | education_opportunities | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 590 | education_opportunities | updated_at | timestamptz | Não | now() | Não | INDEX imz_education_opportunities_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 591 | education_opportunities | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | ||
| 592 | education_opportunities | course_id | uuid | Não | Sem predefinição | FK -> courses.id ON UPDATE CASCADE ON DELETE CASCADE | Não | INDEX imz_education_opportunities_course_id_idx btree | course id | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 |
| 593 | education_opportunities | geo_location_id | uuid | Sim | NULL | FK -> geo_locations.id ON UPDATE CASCADE ON DELETE SET NULL | Não | INDEX imz_education_opportunities_geo_location_id_idx btree | geo location id | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 |
| 594 | education_opportunities | start_date | date | Não | Sem predefinição | Não | imz_education_opportunities_check_05: end_date IS NULL OR end_date>=start_date | start date | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 595 | education_opportunities | end_date | date | Sim | NULL | Não | imz_education_opportunities_check_05: end_date IS NULL OR end_date>=start_date | end date | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 596 | education_opportunities | capacity | integer | Sim | NULL | Não | imz_education_opportunities_check_03: capacity>=0 | capacity | Não | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 597 | education_opportunities | status | text | Não | Sem predefinição | Não | imz_education_opportunities_check_04: status IN ('planned','open','closed','cancelled') INDEX imz_education_opportunities_status_idx btree | status | status IN ('planned','open','closed','cancelled') | Não | False | False | database/migrations/2026_09_24_009000_investmoz_education.php | Reconciliado A.25/A.26 e A.31 | |
| 598 | project_documents | project_id | uuid | Não | Sem predefinição | PK; FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE | PRIMARY KEY composta: project_id, document_id | INDEX imz_project_documents_project_id_idx btree | project id | Não | Não | False | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 |
| 599 | project_documents | document_id | uuid | Não | Sem predefinição | PK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICT | PRIMARY KEY composta: project_id, document_id | INDEX imz_project_documents_document_id_idx btree | document id | Não | Não | False | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 |
| 600 | project_documents | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 | ||
| 601 | investor_documents | investor_id | uuid | Não | Sem predefinição | PK; FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADE | PRIMARY KEY composta: investor_id, document_id | INDEX imz_investor_documents_investor_id_idx btree | investor id | Não | Não | False | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 |
| 602 | investor_documents | document_id | uuid | Não | Sem predefinição | PK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICT | PRIMARY KEY composta: investor_id, document_id | INDEX imz_investor_documents_document_id_idx btree | document id | Não | Não | False | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 |
| 603 | investor_documents | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 | ||
| 604 | journey_documents | journey_id | uuid | Não | Sem predefinição | PK; FK -> investor_journeys.id ON UPDATE CASCADE ON DELETE CASCADE | PRIMARY KEY composta: journey_id, document_id | INDEX imz_journey_documents_journey_id_idx btree | journey id | Não | Não | False | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 |
| 605 | journey_documents | document_id | uuid | Não | Sem predefinição | PK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICT | PRIMARY KEY composta: journey_id, document_id | INDEX imz_journey_documents_document_id_idx btree | document id | Não | Não | False | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 |
| 606 | journey_documents | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 | ||
| 607 | aftercare_documents | aftercare_plan_id | uuid | Não | Sem predefinição | PK; FK -> aftercare_plans.id ON UPDATE CASCADE ON DELETE CASCADE | PRIMARY KEY composta: aftercare_plan_id, document_id | INDEX imz_aftercare_documents_aftercare_plan_id_idx btree | aftercare plan id | Não | Não | False | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 |
| 608 | aftercare_documents | document_id | uuid | Não | Sem predefinição | PK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICT | PRIMARY KEY composta: aftercare_plan_id, document_id | INDEX imz_aftercare_documents_document_id_idx btree | document id | Não | Não | False | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 |
| 609 | aftercare_documents | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 | ||
| 610 | education_documents | education_opportunity_id | uuid | Não | Sem predefinição | PK; FK -> education_opportunities.id ON UPDATE CASCADE ON DELETE CASCADE | PRIMARY KEY composta: education_opportunity_id, document_id | INDEX imz_education_documents_education_opportunity_id_idx btree | education opportunity id | Não | Não | False | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 |
| 611 | education_documents | document_id | uuid | Não | Sem predefinição | PK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICT | PRIMARY KEY composta: education_opportunity_id, document_id | INDEX imz_education_documents_document_id_idx btree | document id | Não | Não | False | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 |
| 612 | education_documents | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_009500_investmoz_document_links.php | Reconciliado A.25/A.26 e A.31 | ||
| 613 | audit_events | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | |
| 614 | audit_events | source_system | text | Não | 'investmoz' | imz_audit_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_audit_events_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | |
| 615 | audit_events | external_id | text | Sim | NULL | imz_audit_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_audit_events_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | |
| 616 | audit_events | data_classification | text | Não | 'internal' | Não | imz_audit_events_check_01: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | |
| 617 | audit_events | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | ||
| 618 | audit_events | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | ||
| 619 | audit_events | actor_user_id | bigint | Sim | NULL | FK -> users.id ON UPDATE RESTRICT ON DELETE RESTRICT | Não | INDEX imz_audit_events_actor_user_id_idx btree | actor user id | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 |
| 620 | audit_events | entity_type | text | Não | Sem predefinição | Não | entity type | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | ||
| 621 | audit_events | entity_id | uuid | Sim | NULL | Não | ID histórico UUID sem FK; a entidade pode já não existir | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | ||
| 622 | audit_events | action | text | Não | Sem predefinição | Não | action | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | ||
| 623 | audit_events | occurred_at | timestamptz | Não | now() | Não | occurred at | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | ||
| 624 | audit_events | before_data | jsonb | Sim | NULL | Não | Representação anterior; aplicação deve remover segredos | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | ||
| 625 | audit_events | after_data | jsonb | Sim | NULL | Não | INDEX imz_audit_events_after_data_idx gin | Representação posterior; aplicação deve remover segredos | Não | Não | False | False | database/migrations/2026_09_24_010000_investmoz_governance_ai.php | Reconciliado A.25/A.26 e A.31 | |
| 626 | outbox_events | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 627 | outbox_events | source_system | text | Não | 'investmoz' | imz_outbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_outbox_events_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 628 | outbox_events | external_id | text | Sim | NULL | imz_outbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_outbox_events_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 629 | outbox_events | version_no | integer | Não | 1 | Não | imz_outbox_events_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 630 | outbox_events | data_classification | text | Não | 'internal' | Não | imz_outbox_events_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 631 | outbox_events | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 632 | outbox_events | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 633 | outbox_events | updated_at | timestamptz | Não | now() | Não | INDEX imz_outbox_events_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 634 | outbox_events | aggregate_type | text | Não | Sem predefinição | Não | aggregate type | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 635 | outbox_events | aggregate_id | uuid | Não | Sem predefinição | Não | UUID do agregado produtor; sem FK polimórfica | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 636 | outbox_events | event_type | text | Não | Sem predefinição | Não | event type | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 637 | outbox_events | payload | jsonb | Não | Sem predefinição | Não | Conteúdo da submissão/evento; contrato por tipo pendente | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 638 | outbox_events | status | text | Não | Sem predefinição | Não | imz_outbox_events_check_03: status IN ('pending','published','failed') INDEX imz_outbox_events_status_idx btree; INDEX imz_outbox_events_status_available_at_idx btree | status | status IN ('pending','published','failed') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 639 | outbox_events | available_at | timestamptz | Não | now() | Não | INDEX imz_outbox_events_status_available_at_idx btree | available at | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 640 | outbox_events | published_at | timestamptz | Sim | NULL | Não | published at | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 641 | inbox_events | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 642 | inbox_events | source_system | text | Não | 'investmoz' | imz_inbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_inbox_events_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 643 | inbox_events | external_id | text | Sim | NULL | imz_inbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_inbox_events_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 644 | inbox_events | version_no | integer | Não | 1 | Não | imz_inbox_events_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 645 | inbox_events | data_classification | text | Não | 'internal' | Não | imz_inbox_events_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 646 | inbox_events | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 647 | inbox_events | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 648 | inbox_events | updated_at | timestamptz | Não | now() | Não | INDEX imz_inbox_events_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 649 | inbox_events | message_id | text | Não | Sem predefinição | imz_inbox_events_message_id_uq | INDEX imz_inbox_events_message_id_uq btree | message id | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 650 | inbox_events | event_type | text | Não | Sem predefinição | Não | event type | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 651 | inbox_events | payload | jsonb | Não | Sem predefinição | Não | Conteúdo da submissão/evento; contrato por tipo pendente | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 652 | inbox_events | status | text | Não | Sem predefinição | Não | imz_inbox_events_check_03: status IN ('received','processed','failed') INDEX imz_inbox_events_status_idx btree | status | status IN ('received','processed','failed') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 653 | inbox_events | received_at | timestamptz | Não | now() | Não | received at | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 654 | inbox_events | processed_at | timestamptz | Sim | NULL | Não | processed at | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 655 | sync_runs | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 656 | sync_runs | source_system | text | Não | 'investmoz' | imz_sync_runs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_sync_runs_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 657 | sync_runs | external_id | text | Sim | NULL | imz_sync_runs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_sync_runs_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 658 | sync_runs | version_no | integer | Não | 1 | Não | imz_sync_runs_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 659 | sync_runs | data_classification | text | Não | 'internal' | Não | imz_sync_runs_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 660 | sync_runs | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 661 | sync_runs | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 662 | sync_runs | updated_at | timestamptz | Não | now() | Não | INDEX imz_sync_runs_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 663 | sync_runs | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 664 | sync_runs | integration_name | text | Não | Sem predefinição | Não | integration name | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 665 | sync_runs | direction | text | Não | Sem predefinição | Não | imz_sync_runs_check_03: direction IN ('inbound','outbound') | direction | direction IN ('inbound','outbound') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 666 | sync_runs | status | text | Não | Sem predefinição | Não | imz_sync_runs_check_04: status IN ('running','succeeded','failed','cancelled') INDEX imz_sync_runs_status_idx btree | status | status IN ('running','succeeded','failed','cancelled') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 667 | sync_runs | started_at | timestamptz | Não | now() | Não | started at | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 668 | sync_runs | ended_at | timestamptz | Sim | NULL | Não | ended at | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 669 | sync_runs | totals | jsonb | Não | '{}'::jsonb | Não | totals | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 670 | reconciliation_issues | id | uuid | Não | gen_random_uuid() | PK | PRIMARY KEY | Identificador primário da entidade | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 671 | reconciliation_issues | source_system | text | Não | 'investmoz' | imz_reconciliation_issues_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_reconciliation_issues_source_system_external_id_uq btree | Sistema de origem; integra a chave estável de importação | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 672 | reconciliation_issues | external_id | text | Sim | NULL | imz_reconciliation_issues_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL | INDEX imz_reconciliation_issues_source_system_external_id_uq btree | Identificador na origem; NULL quando não fornecido | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 673 | reconciliation_issues | version_no | integer | Não | 1 | Não | imz_reconciliation_issues_check_01: version_no > 0 | Versão positiva; comparação compete ao importador | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 674 | reconciliation_issues | data_classification | text | Não | 'internal' | Não | imz_reconciliation_issues_check_02: data_classification IN ('public','internal','confidential','restricted') | Classificação de acesso; não substitui autorização | data_classification IN ('public','internal','confidential','restricted') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 675 | reconciliation_issues | correlation_id | uuid | Sim | NULL | Não | Correlação entre operações; não é FK | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 676 | reconciliation_issues | created_at | timestamptz | Não | now() | Não | Instante de criação | Não | Não | True | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 677 | reconciliation_issues | updated_at | timestamptz | Não | now() | Não | INDEX imz_reconciliation_issues_updated_at_idx btree | Instante da última actualização | Não | Não | True | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 678 | reconciliation_issues | deleted_at | timestamptz | Sim | NULL | Não | Eliminação lógica; NULL indica activo | Não | Não | False | True | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 679 | reconciliation_issues | sync_run_id | uuid | Não | Sem predefinição | FK -> sync_runs.id ON UPDATE CASCADE ON DELETE CASCADE | Não | INDEX imz_reconciliation_issues_sync_run_id_idx btree; INDEX imz_reconciliation_issues_sync_run_id_status_idx btree | sync run id | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 |
| 680 | reconciliation_issues | entity_type | text | Não | Sem predefinição | Não | entity type | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 681 | reconciliation_issues | external_id_ref | text | Sim | NULL | Não | external id ref | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | ||
| 682 | reconciliation_issues | issue_type | text | Não | Sem predefinição | Não | imz_reconciliation_issues_check_03: issue_type IN ('missing','duplicate','orphan','checksum','geometry','value') | issue type | issue_type IN ('missing','duplicate','orphan','checksum','geometry','value') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 683 | reconciliation_issues | severity | text | Não | Sem predefinição | Não | imz_reconciliation_issues_check_04: severity IN ('warning','error') | severity | severity IN ('warning','error') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 684 | reconciliation_issues | status | text | Não | Sem predefinição | Não | imz_reconciliation_issues_check_05: status IN ('open','accepted','resolved') INDEX imz_reconciliation_issues_status_idx btree; INDEX imz_reconciliation_issues_sync_run_id_status_idx btree | status | status IN ('open','accepted','resolved') | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 | |
| 685 | reconciliation_issues | details | jsonb | Não | '{}'::jsonb | Não | details | Não | Não | False | False | database/migrations/2026_09_24_011000_investmoz_integrations.php | Reconciliado A.25/A.26 e A.31 |