Files
Investidor-V2/docs/investmoz/data-dictionary.csv
T
nala 250ac35fd1
tests / ci (push) Canceled after 0s
first commit
2026-09-28 10:01:09 +02:00

179 KiB

1TabelaCampoTipo PostgreSQLNuloPredefiniçãoPK/FKÚnicoRestrição/índiceDescriçãoEnumeração CHECKCalculadoTimestamp técnicoSoft deleteMigrationObservações
2usersidbigintNãonextval('users_id_seq'::regclass)PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
3usersnamecharacter varying(255)NãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
4usersemailcharacter varying(255)NãoSem predefiniçãousers_email_uniqueINDEX users_email_unique btreeemailNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
5usersemail_verified_attimestamp(0) without time zoneSimNULLNãoemail verified atNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
6userspasswordcharacter varying(255)NãoSem predefiniçãoNãopasswordNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
7usersremember_tokencharacter varying(100)SimNULLNãoremember tokenNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
8userscreated_attimestamp(0) without time zoneSimNULLNãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
9usersupdated_attimestamp(0) without time zoneSimNULLNãoInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
10userstwo_factor_secrettextSimNULLNãotwo factor secretNãoNãoFalseFalsedatabase/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.phpLegado preservado
11userstwo_factor_recovery_codestextSimNULLNãotwo factor recovery codesNãoNãoFalseFalsedatabase/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.phpLegado preservado
12userstwo_factor_confirmed_attimestamp(0) without time zoneSimNULLNãotwo factor confirmed atNãoNãoFalseFalsedatabase/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.phpLegado preservado
13password_reset_tokensemailcharacter varying(255)NãoSem predefiniçãoPKPRIMARY KEYemailNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
14password_reset_tokenstokencharacter varying(255)NãoSem predefiniçãoNãotokenNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
15password_reset_tokenscreated_attimestamp(0) without time zoneSimNULLNãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
16sessionsidcharacter varying(255)NãoSem predefiniçãoPKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
17sessionsuser_idbigintSimNULLNãoINDEX sessions_user_id_index btreeuser idNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
18sessionsip_addresscharacter varying(45)SimNULLNãoip addressNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
19sessionsuser_agenttextSimNULLNãouser agentNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
20sessionspayloadtextNãoSem predefiniçãoNãoConteúdo da submissão/evento; contrato por tipo pendenteNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
21sessionslast_activityintegerNãoSem predefiniçãoNãoINDEX sessions_last_activity_index btreelast activityNãoNãoFalseFalsedatabase/migrations/0001_01_01_000000_create_users_table.phpLegado preservado
22cachekeycharacter varying(255)NãoSem predefiniçãoPKPRIMARY KEYkeyNãoNãoFalseFalsedatabase/migrations/0001_01_01_000001_create_cache_table.phpLegado preservado
23cachevaluetextNãoSem predefiniçãoNãovalueNãoNãoFalseFalsedatabase/migrations/0001_01_01_000001_create_cache_table.phpLegado preservado
24cacheexpirationbigintNãoSem predefiniçãoNãoINDEX cache_expiration_index btreeexpirationNãoNãoFalseFalsedatabase/migrations/0001_01_01_000001_create_cache_table.phpLegado preservado
25cache_lockskeycharacter varying(255)NãoSem predefiniçãoPKPRIMARY KEYkeyNãoNãoFalseFalsedatabase/migrations/0001_01_01_000001_create_cache_table.phpLegado preservado
26cache_locksownercharacter varying(255)NãoSem predefiniçãoNãoownerNãoNãoFalseFalsedatabase/migrations/0001_01_01_000001_create_cache_table.phpLegado preservado
27cache_locksexpirationbigintNãoSem predefiniçãoNãoINDEX cache_locks_expiration_index btreeexpirationNãoNãoFalseFalsedatabase/migrations/0001_01_01_000001_create_cache_table.phpLegado preservado
28jobsidbigintNãonextval('jobs_id_seq'::regclass)PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
29jobsqueuecharacter varying(255)NãoSem predefiniçãoNãoINDEX jobs_queue_index btreequeueNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
30jobspayloadtextNãoSem predefiniçãoNãoConteúdo da submissão/evento; contrato por tipo pendenteNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
31jobsattemptssmallintNãoSem predefiniçãoNãoattemptsNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
32jobsreserved_atintegerSimNULLNãoreserved atNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
33jobsavailable_atintegerNãoSem predefiniçãoNãoavailable atNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
34jobscreated_atintegerNãoSem predefiniçãoNãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
35job_batchesidcharacter varying(255)NãoSem predefiniçãoPKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
36job_batchesnamecharacter varying(255)NãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
37job_batchestotal_jobsintegerNãoSem predefiniçãoNãototal jobsNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
38job_batchespending_jobsintegerNãoSem predefiniçãoNãopending jobsNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
39job_batchesfailed_jobsintegerNãoSem predefiniçãoNãofailed jobsNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
40job_batchesfailed_job_idstextNãoSem predefiniçãoNãofailed job idsNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
41job_batchesoptionstextSimNULLNãooptionsNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
42job_batchescancelled_atintegerSimNULLNãocancelled atNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
43job_batchescreated_atintegerNãoSem predefiniçãoNãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
44job_batchesfinished_atintegerSimNULLNãofinished atNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
45failed_jobsidbigintNãonextval('failed_jobs_id_seq'::regclass)PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
46failed_jobsuuidcharacter varying(255)NãoSem predefiniçãofailed_jobs_uuid_uniqueINDEX failed_jobs_uuid_unique btreeuuidNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
47failed_jobsconnectioncharacter varying(255)NãoSem predefiniçãoNãoINDEX failed_jobs_connection_queue_failed_at_index btreeconnectionNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
48failed_jobsqueuecharacter varying(255)NãoSem predefiniçãoNãoINDEX failed_jobs_connection_queue_failed_at_index btreequeueNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
49failed_jobspayloadtextNãoSem predefiniçãoNãoConteúdo da submissão/evento; contrato por tipo pendenteNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
50failed_jobsexceptiontextNãoSem predefiniçãoNãoexceptionNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
51failed_jobsfailed_attimestamp(0) without time zoneNãoCURRENT_TIMESTAMPNãoINDEX failed_jobs_connection_queue_failed_at_index btreefailed atNãoNãoFalseFalsedatabase/migrations/0001_01_01_000002_create_jobs_table.phpLegado preservado
52passkeysidbigintNãonextval('passkeys_id_seq'::regclass)PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2024_01_01_000000_create_passkeys_table.phpLegado preservado
53passkeysuser_idbigintNãoSem predefiniçãoFK -> users.id ON UPDATE NO ACTION ON DELETE CASCADENãoINDEX passkeys_user_id_index btreeuser idNãoNãoFalseFalsedatabase/migrations/2024_01_01_000000_create_passkeys_table.phpLegado preservado
54passkeysnamecharacter varying(255)NãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2024_01_01_000000_create_passkeys_table.phpLegado preservado
55passkeyscredential_idcharacter varying(255)NãoSem predefiniçãopasskeys_credential_id_uniqueINDEX passkeys_credential_id_unique btreecredential idNãoNãoFalseFalsedatabase/migrations/2024_01_01_000000_create_passkeys_table.phpLegado preservado
56passkeyscredentialjsonNãoSem predefiniçãoNãocredentialNãoNãoFalseFalsedatabase/migrations/2024_01_01_000000_create_passkeys_table.phpLegado preservado
57passkeyslast_used_attimestamp(0) without time zoneSimNULLNãolast used atNãoNãoFalseFalsedatabase/migrations/2024_01_01_000000_create_passkeys_table.phpLegado preservado
58passkeyscreated_attimestamp(0) without time zoneSimNULLNãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2024_01_01_000000_create_passkeys_table.phpLegado preservado
59passkeysupdated_attimestamp(0) without time zoneSimNULLNãoInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2024_01_01_000000_create_passkeys_table.phpLegado preservado
60sectorsidbigintNãonextval('sectors_id_seq'::regclass)PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
61sectorsnamecharacter varying(150)NãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
62sectorsslugcharacter varying(180)NãoSem predefiniçãosectors_slug_uniqueINDEX sectors_slug_unique btree; INDEX sectors_slug_index btreeslugNãoNãoFalseFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
63sectorsshort_descriptioncharacter varying(255)SimNULLNãoshort descriptionNãoNãoFalseFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
64sectorsdescriptiontextSimNULLNãodescriptionNãoNãoFalseFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
65sectorsiconcharacter varying(100)SimNULLNãoiconNãoNãoFalseFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
66sectorssort_orderintegerNão0Nãosort orderNãoNãoFalseFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
67sectorsis_activebooleanNãotrueNãoINDEX sectors_is_active_index btreeis activeNãoNãoFalseFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
68sectorspublished_attimestamp(0) without time zoneSimNULLNãopublished atNãoNãoFalseFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
69sectorscreated_attimestamp(0) without time zoneSimNULLNãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
70sectorsupdated_attimestamp(0) without time zoneSimNULLNãoInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
71sectorsdeleted_attimestamp(0) without time zoneSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_01_01_000001_create_sectors_table.phpLegado preservado
72opportunitiesidbigintNãonextval('opportunities_id_seq'::regclass)PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
73opportunitiessector_idbigintNãoSem predefiniçãoFK -> sectors.id ON UPDATE CASCADE ON DELETE RESTRICTNãoINDEX opportunities_sector_id_index btreesector idNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
74opportunitiesreferencecharacter varying(80)NãoSem predefiniçãoopportunities_reference_uniqueINDEX opportunities_reference_unique btree; INDEX opportunities_reference_index btreereferenceNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
75opportunitiestitlecharacter varying(200)NãoSem predefiniçãoNãotitleNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
76opportunitiesslugcharacter varying(220)NãoSem predefiniçãoopportunities_slug_uniqueINDEX opportunities_slug_unique btree; INDEX opportunities_slug_index btreeslugNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
77opportunitiessummarycharacter varying(500)SimNULLNãosummaryNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
78opportunitiesdescriptiontextSimNULLNãodescriptionNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
79opportunitiesprovincecharacter varying(100)SimNULLNãoINDEX opportunities_province_index btreeprovinceNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
80opportunitiesdistrictcharacter varying(100)SimNULLNãodistrictNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
81opportunitiespromoter_namecharacter varying(200)SimNULLNãopromoter nameNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
82opportunitiespromoter_typecharacter varying(100)SimNULLNãopromoter typeNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
83opportunitiesmaturity_levelsmallintSimNULLNãoINDEX opportunities_maturity_level_index btreematurity levelNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
84opportunitiesmaturity_labelcharacter varying(120)SimNULLNãomaturity labelNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
85opportunitiesestimated_investment_amountnumeric(18,2)SimNULLNãoestimated investment amountNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
86opportunitiesestimated_investment_currencycharacter varying(10)Não'USD'Nãoestimated investment currencyNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
87opportunitiesfinancing_modalitycharacter varying(120)SimNULLNãofinancing modalityNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
88opportunitiesexpected_impacttextSimNULLNãoexpected impactNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
89opportunitiesstatuscharacter varying(50)Não'draft'NãoINDEX opportunities_status_index btreestatusNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
90opportunitiesis_featuredbooleanNãofalseNãoINDEX opportunities_is_featured_index btreeis featuredNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
91opportunitiespublished_attimestamp(0) without time zoneSimNULLNãopublished atNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
92opportunitieslast_validated_attimestamp(0) without time zoneSimNULLNãolast validated atNãoNãoFalseFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
93opportunitiescreated_attimestamp(0) without time zoneSimNULLNãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
94opportunitiesupdated_attimestamp(0) without time zoneSimNULLNãoInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
95opportunitiesdeleted_attimestamp(0) without time zoneSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_01_01_000002_create_opportunities_table.phpLegado preservado
96interest_requestsidbigintNãonextval('interest_requests_id_seq'::regclass)PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
97interest_requestsopportunity_idbigintSimNULLFK -> opportunities.id ON UPDATE CASCADE ON DELETE SET NULLNãoopportunity idNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
98interest_requestsreferencecharacter varying(80)NãoSem predefiniçãointerest_requests_reference_uniqueINDEX interest_requests_reference_unique btree; INDEX interest_requests_reference_index btreereferenceNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
99interest_requestsfull_namecharacter varying(150)NãoSem predefiniçãoNãofull nameNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
100interest_requestsemailcharacter varying(150)NãoSem predefiniçãoNãoINDEX interest_requests_email_index btreeemailNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
101interest_requestsphonecharacter varying(30)SimNULLNãophoneNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
102interest_requestsinvestor_typecharacter varying(80)NãoSem predefiniçãoNãoinvestor typeNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
103interest_requestscountrycharacter varying(100)NãoSem predefiniçãoNãocountryNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
104interest_requestssector_interestcharacter varying(150)NãoSem predefiniçãoNãosector interestNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
105interest_requestsopportunity_referencecharacter varying(80)SimNULLNãoopportunity referenceNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
106interest_requestsinvestment_rangecharacter varying(80)SimNULLNãoinvestment rangeNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
107interest_requestsmessagetextNãoSem predefiniçãoNãomessageNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
108interest_requestsprivacy_consentbooleanNãofalseNãoprivacy consentNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
109interest_requestsconsented_attimestamp(0) without time zoneSimNULLNãoconsented atNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
110interest_requestsstatuscharacter varying(50)Não'received'NãoINDEX interest_requests_status_index btreestatusNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
111interest_requestssource_pagecharacter varying(255)SimNULLNãosource pageNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
112interest_requestsip_addressinetSimNULLNãoip addressNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
113interest_requestsuser_agenttextSimNULLNãouser agentNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
114interest_requestsmetadatajsonSimNULLNãoMetadados flexíveis; schema aplicacional pendenteNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
115interest_requestsreviewed_attimestamp(0) without time zoneSimNULLNãoreviewed atNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
116interest_requestsreviewed_bybigintSimNULLFK -> users.id ON UPDATE NO ACTION ON DELETE SET NULLNãoreviewed byNãoNãoFalseFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
117interest_requestscreated_attimestamp(0) without time zoneSimNULLNãoINDEX interest_requests_created_at_index btreeInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
118interest_requestsupdated_attimestamp(0) without time zoneSimNULLNãoInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
119interest_requestsdeleted_attimestamp(0) without time zoneSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_01_01_000003_create_interest_requests_table.phpLegado preservado
120organizationsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
121organizationssource_systemtextNão'investmoz'imz_organizations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_organizations_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
122organizationsexternal_idtextSimNULLimz_organizations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_organizations_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
123organizationsversion_nointegerNão1Nãoimz_organizations_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
124organizationsdata_classificationtextNão'internal'Nãoimz_organizations_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
125organizationscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
126organizationscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
127organizationsupdated_attimestamptzNãonow()NãoINDEX imz_organizations_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
128organizationsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
129organizationsnametextNãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
130organizationsorganization_typetextNãoSem predefiniçãoNãoimz_organizations_check_03: organization_type IN ('public','private','ngo','education')organization typeorganization_type IN ('public','private','ngo','education')NãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
131membershipsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
132membershipssource_systemtextNão'investmoz'imz_memberships_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_memberships_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
133membershipsexternal_idtextSimNULLimz_memberships_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_memberships_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
134membershipsversion_nointegerNão1Nãoimz_memberships_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
135membershipsdata_classificationtextNão'internal'Nãoimz_memberships_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
136membershipscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
137membershipscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
138membershipsupdated_attimestamptzNãonow()NãoINDEX imz_memberships_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
139membershipsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
140membershipsuser_idbigintNãoSem predefiniçãoFK -> users.id ON UPDATE CASCADE ON DELETE CASCADEimz_memberships_user_id_organization_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_memberships_user_id_idx btree; INDEX imz_memberships_user_id_organization_id_uq btreeuser idNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
141membershipsorganization_iduuidNãoSem predefiniçãoFK -> organizations.id ON UPDATE CASCADE ON DELETE CASCADEimz_memberships_user_id_organization_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_memberships_organization_id_idx btree; INDEX imz_memberships_user_id_organization_id_uq btreeorganization idNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
142membershipsroletextNãoSem predefiniçãoNãoimz_memberships_check_03: role IN ('admin','manager','officer','viewer')rolerole IN ('admin','manager','officer','viewer')NãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
143consentsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
144consentssource_systemtextNão'investmoz'imz_consents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_consents_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
145consentsexternal_idtextSimNULLimz_consents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_consents_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
146consentsversion_nointegerNão1Nãoimz_consents_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
147consentsdata_classificationtextNão'internal'Nãoimz_consents_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
148consentscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
149consentscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
150consentsupdated_attimestamptzNãonow()NãoINDEX imz_consents_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
151consentsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
152consentsuser_idbigintSimNULLFK -> users.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_consents_user_id_idx btreeuser idNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
153consentssubject_reftextNãoSem predefiniçãoNãosubject refNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
154consentspurposetextNãoSem predefiniçãoNãopurposeNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
155consentsstatustextNãoSem predefiniçãoNãoimz_consents_check_03: status IN ('granted','withdrawn','expired') INDEX imz_consents_status_idx btreestatusstatus IN ('granted','withdrawn','expired')NãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
156consentsgranted_attimestamptzSimNULLNãogranted atNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
157consentswithdrawn_attimestamptzSimNULLNãowithdrawn atNãoNãoFalseFalsedatabase/migrations/2026_09_24_001000_investmoz_identity.phpReconciliado A.25/A.26 e A.31
158documentsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
159documentssource_systemtextNão'investmoz'imz_documents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_documents_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
160documentsexternal_idtextSimNULLimz_documents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_documents_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
161documentsversion_nointegerNão1Nãoimz_documents_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
162documentsdata_classificationtextNão'internal'Nãoimz_documents_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
163documentscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
164documentscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
165documentsupdated_attimestamptzNãonow()NãoINDEX imz_documents_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
166documentsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
167documentsfile_nametextNãoSem predefiniçãoNãofile nameNãoNãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
168documentsmedia_typetextNãoSem predefiniçãoNãomedia typeNãoNãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
169documentsstorage_keytextNãoSem predefiniçãoimz_documents_storage_key_uqINDEX imz_documents_storage_key_uq btreeChave única no armazenamentoNãoNãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
170documentssha256char(64)NãoSem predefiniçãoNãoimz_documents_check_04: sha256 ~ '^[0-9a-f]{64}$'SHA-256 hexadecimal; 64 caracteres minúsculosNãoNãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
171documentsstatustextNãoSem predefiniçãoNãoimz_documents_check_03: status IN ('active','quarantined','deleted') INDEX imz_documents_status_idx btreestatusstatus IN ('active','quarantined','deleted')NãoFalseFalsedatabase/migrations/2026_09_24_002000_investmoz_content.phpReconciliado A.25/A.26 e A.31
172geo_locationsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
173geo_locationssource_systemtextNão'investmoz'imz_geo_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_geo_locations_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
174geo_locationsexternal_idtextSimNULLimz_geo_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_geo_locations_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
175geo_locationsversion_nointegerNão1Nãoimz_geo_locations_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
176geo_locationsdata_classificationtextNão'internal'Nãoimz_geo_locations_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
177geo_locationscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
178geo_locationscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
179geo_locationsupdated_attimestamptzNãonow()NãoINDEX imz_geo_locations_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
180geo_locationsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
181geo_locationsnametextNãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
182geo_locationslocation_typetextNãoSem predefiniçãoimz_geo_locations_location_type_code_uq (composta) WHERE deleted_at IS NULLimz_geo_locations_check_03: location_type IN ('country','province','district','municipality','site') INDEX imz_geo_locations_location_type_code_uq btreelocation typelocation_type IN ('country','province','district','municipality','site')NãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
183geo_locationsparent_iduuidSimNULLFK -> geo_locations.id ON UPDATE CASCADE ON DELETE RESTRICTNãoINDEX imz_geo_locations_parent_id_idx btreeparent idNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
184geo_locationscodetextNãoSem predefiniçãoimz_geo_locations_location_type_code_uq (composta) WHERE deleted_at IS NULLINDEX imz_geo_locations_location_type_code_uq btreecodeNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
185geo_geometriesiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
186geo_geometriessource_systemtextNão'investmoz'imz_geo_geometries_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_geo_geometries_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
187geo_geometriesexternal_idtextSimNULLimz_geo_geometries_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_geo_geometries_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
188geo_geometriesversion_nointegerNão1Nãoimz_geo_geometries_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
189geo_geometriesdata_classificationtextNão'internal'Nãoimz_geo_geometries_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
190geo_geometriescorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
191geo_geometriescreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
192geo_geometriesupdated_attimestamptzNãonow()NãoINDEX imz_geo_geometries_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
193geo_geometriesdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
194geo_geometriesgeo_location_iduuidNãoSem predefiniçãoFK -> geo_locations.id ON UPDATE CASCADE ON DELETE CASCADEimz_geo_geometries_geo_location_id_geometry_type_uq (composta) WHERE deleted_at IS NULLINDEX imz_geo_geometries_geo_location_id_idx btree; INDEX imz_geo_geometries_geo_location_id_geometry_type_uq btreegeo location idNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
195geo_geometriesgeometry_typetextNãoSem predefiniçãoimz_geo_geometries_geo_location_id_geometry_type_uq (composta) WHERE deleted_at IS NULLimz_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 btreeTipo declarado coerente com GeometryType(geom)geometry_type IN ('point','line','polygon','multipolygon')NãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
196geo_geometriesgeomgeometry(Geometry,4326)NãoSem predefiniçãoNãoimz_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 gistGeometria 2D WGS84 SRID 4326, válida e não vaziaNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
197geo_geometriespropertiesjsonbNão'{}'::jsonbNãoINDEX imz_geo_geometries_properties_idx ginPropriedades geográficas; schema aplicacional pendenteNãoNãoFalseFalsedatabase/migrations/2026_09_24_003000_investmoz_geography.phpReconciliado A.25/A.26 e A.31
198projectsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
199projectssource_systemtextNão'investmoz'imz_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_projects_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
200projectsexternal_idtextSimNULLimz_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_projects_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
201projectsversion_nointegerNão1Nãoimz_projects_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
202projectsdata_classificationtextNão'internal'Nãoimz_projects_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
203projectscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
204projectscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
205projectsupdated_attimestamptzNãonow()NãoINDEX imz_projects_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
206projectsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
207projectscodetextNãoSem predefiniçãoimz_projects_code_uq WHERE deleted_at IS NULLINDEX imz_projects_code_uq btreecodeNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
208projectsnametextNãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
209projectsstatustextNãoSem predefiniçãoNãoimz_projects_check_03: status IN ('draft','planned','active','suspended','completed','cancelled') INDEX imz_projects_status_idx btreestatusstatus IN ('draft','planned','active','suspended','completed','cancelled')NãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
210projectsdescriptiontextSimNULLNãodescriptionNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
211projectsbudget_amountnumeric(20,2)SimNULLNãoimz_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 negativoNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
212projectsbudget_currencychar(3)SimNULLNãoimz_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 pendenteNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
213projectsstart_datedateSimNULLNãoimz_projects_check_05: end_date IS NULL OR start_date IS NULL OR end_date >= start_datestart dateNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
214projectsend_datedateSimNULLNãoimz_projects_check_05: end_date IS NULL OR start_date IS NULL OR end_date >= start_dateend dateNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
215projectsmetadatajsonbNão'{}'::jsonbNãoINDEX imz_projects_metadata_idx ginMetadados flexíveis; schema aplicacional pendenteNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
216project_locationsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
217project_locationssource_systemtextNão'investmoz'imz_project_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_project_locations_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
218project_locationsexternal_idtextSimNULLimz_project_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_project_locations_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
219project_locationsversion_nointegerNão1Nãoimz_project_locations_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
220project_locationsdata_classificationtextNão'internal'Nãoimz_project_locations_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
221project_locationscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
222project_locationscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
223project_locationsupdated_attimestamptzNãonow()NãoINDEX imz_project_locations_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
224project_locationsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
225project_locationsproject_iduuidNãoSem predefiniçãoFK -> projects.id ON UPDATE CASCADE ON DELETE CASCADEimz_project_locations_project_id_geo_location_id_role_uq (composta) WHERE deleted_at IS NULLINDEX imz_project_locations_project_id_idx btree; INDEX imz_project_locations_project_id_geo_location_id_role_uq btreeproject idNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
226project_locationsgeo_location_iduuidNãoSem predefiniçãoFK -> geo_locations.id ON UPDATE CASCADE ON DELETE RESTRICTimz_project_locations_project_id_geo_location_id_role_uq (composta) WHERE deleted_at IS NULLINDEX imz_project_locations_geo_location_id_idx btree; INDEX imz_project_locations_project_id_geo_location_id_role_uq btreegeo location idNãoNãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
227project_locationsroletextNãoSem predefiniçãoimz_project_locations_project_id_geo_location_id_role_uq (composta) WHERE deleted_at IS NULLimz_project_locations_check_03: role IN ('primary','secondary','impact') INDEX imz_project_locations_project_id_geo_location_id_role_uq btreerolerole IN ('primary','secondary','impact')NãoFalseFalsedatabase/migrations/2026_09_24_004000_investmoz_projects.phpReconciliado A.25/A.26 e A.31
228economic_clustersiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
229economic_clusterssource_systemtextNão'investmoz'imz_economic_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_economic_clusters_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
230economic_clustersexternal_idtextSimNULLimz_economic_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_economic_clusters_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
231economic_clustersversion_nointegerNão1Nãoimz_economic_clusters_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
232economic_clustersdata_classificationtextNão'internal'Nãoimz_economic_clusters_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
233economic_clusterscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
234economic_clusterscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
235economic_clustersupdated_attimestamptzNãonow()NãoINDEX imz_economic_clusters_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
236economic_clustersdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
237economic_clusterscodetextNãoSem predefiniçãoimz_economic_clusters_code_uq WHERE deleted_at IS NULLINDEX imz_economic_clusters_code_uq btreecodeNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
238economic_clustersnametextNãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
239economic_clusterssectortextNãoSem predefiniçãoNãosectorNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
240economic_clustersstatustextNãoSem predefiniçãoNãoimz_economic_clusters_check_03: status IN ('planned','active','inactive') INDEX imz_economic_clusters_status_idx btreestatusstatus IN ('planned','active','inactive')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
241economic_clustersmetadatajsonbNão'{}'::jsonbNãoMetadados flexíveis; schema aplicacional pendenteNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
242value_chainsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
243value_chainssource_systemtextNão'investmoz'imz_value_chains_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_value_chains_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
244value_chainsexternal_idtextSimNULLimz_value_chains_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_value_chains_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
245value_chainsversion_nointegerNão1Nãoimz_value_chains_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
246value_chainsdata_classificationtextNão'internal'Nãoimz_value_chains_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
247value_chainscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
248value_chainscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
249value_chainsupdated_attimestamptzNãonow()NãoINDEX imz_value_chains_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
250value_chainsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
251value_chainscluster_iduuidNãoSem predefiniçãoFK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADEimz_value_chains_cluster_id_code_uq (composta) WHERE deleted_at IS NULLINDEX imz_value_chains_cluster_id_idx btree; INDEX imz_value_chains_cluster_id_code_uq btreecluster idNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
252value_chainscodetextNãoSem predefiniçãoimz_value_chains_cluster_id_code_uq (composta) WHERE deleted_at IS NULLINDEX imz_value_chains_cluster_id_code_uq btreecodeNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
253value_chainsnametextNãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
254value_chainsstagetextNãoSem predefiniçãoNãoimz_value_chains_check_03: stage IN ('input','production','processing','logistics','market')stagestage IN ('input','production','processing','logistics','market')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
255value_chain_linksiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
256value_chain_linkssource_systemtextNão'investmoz'imz_value_chain_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_value_chain_links_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
257value_chain_linksexternal_idtextSimNULLimz_value_chain_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_value_chain_links_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
258value_chain_linksversion_nointegerNão1Nãoimz_value_chain_links_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
259value_chain_linksdata_classificationtextNão'internal'Nãoimz_value_chain_links_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
260value_chain_linkscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
261value_chain_linkscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
262value_chain_linksupdated_attimestamptzNãonow()NãoINDEX imz_value_chain_links_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
263value_chain_linksdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
264value_chain_linksfrom_value_chain_iduuidNãoSem predefiniçãoFK -> value_chains.id ON UPDATE CASCADE ON DELETE CASCADEimz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c (composta) WHERE deleted_at IS NULLimz_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 btreefrom value chain idNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
265value_chain_linksto_value_chain_iduuidNãoSem predefiniçãoFK -> value_chains.id ON UPDATE CASCADE ON DELETE CASCADEimz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c (composta) WHERE deleted_at IS NULLimz_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 btreeto value chain idNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
266value_chain_linkslink_typetextNãoSem predefiniçãoimz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c (composta) WHERE deleted_at IS NULLimz_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 btreelink typelink_type IN ('supplies','processes','distributes','supports')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
267cluster_projectsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
268cluster_projectssource_systemtextNão'investmoz'imz_cluster_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_cluster_projects_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
269cluster_projectsexternal_idtextSimNULLimz_cluster_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_cluster_projects_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
270cluster_projectsversion_nointegerNão1Nãoimz_cluster_projects_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
271cluster_projectsdata_classificationtextNão'internal'Nãoimz_cluster_projects_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
272cluster_projectscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
273cluster_projectscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
274cluster_projectsupdated_attimestamptzNãonow()NãoINDEX imz_cluster_projects_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
275cluster_projectsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
276cluster_projectscluster_iduuidNãoSem predefiniçãoFK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADEimz_cluster_projects_cluster_id_project_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_cluster_projects_cluster_id_idx btree; INDEX imz_cluster_projects_cluster_id_project_id_uq btreecluster idNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
277cluster_projectsproject_iduuidNãoSem predefiniçãoFK -> projects.id ON UPDATE CASCADE ON DELETE CASCADEimz_cluster_projects_cluster_id_project_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_cluster_projects_project_id_idx btree; INDEX imz_cluster_projects_cluster_id_project_id_uq btreeproject idNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
278cluster_projectsroletextNãoSem predefiniçãoNãoimz_cluster_projects_check_03: role IN ('anchor','complementary','supporting')rolerole IN ('anchor','complementary','supporting')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
279anchor_project_linksiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
280anchor_project_linkssource_systemtextNão'investmoz'imz_anchor_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_anchor_project_links_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
281anchor_project_linksexternal_idtextSimNULLimz_anchor_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_anchor_project_links_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
282anchor_project_linksversion_nointegerNão1Nãoimz_anchor_project_links_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
283anchor_project_linksdata_classificationtextNão'internal'Nãoimz_anchor_project_links_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
284anchor_project_linkscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
285anchor_project_linkscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
286anchor_project_linksupdated_attimestamptzNãonow()NãoINDEX imz_anchor_project_links_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
287anchor_project_linksdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
288anchor_project_linksanchor_project_iduuidNãoSem predefiniçãoFK -> projects.id ON UPDATE CASCADE ON DELETE CASCADEimz_anchor_project_links_anchor_project_id_cluster_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_anchor_project_links_anchor_project_id_idx btree; INDEX imz_anchor_project_links_anchor_project_id_cluster_id_uq btreeanchor project idNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
289anchor_project_linkscluster_iduuidNãoSem predefiniçãoFK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADEimz_anchor_project_links_anchor_project_id_cluster_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_anchor_project_links_cluster_id_idx btree; INDEX imz_anchor_project_links_anchor_project_id_cluster_id_uq btreecluster idNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
290anchor_project_linksrationaletextNãoSem predefiniçãoNãorationaleNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
291complementary_project_linksiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
292complementary_project_linkssource_systemtextNão'investmoz'imz_complementary_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_complementary_project_links_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
293complementary_project_linksexternal_idtextSimNULLimz_complementary_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_complementary_project_links_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
294complementary_project_linksversion_nointegerNão1Nãoimz_complementary_project_links_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
295complementary_project_linksdata_classificationtextNão'internal'Nãoimz_complementary_project_links_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
296complementary_project_linkscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
297complementary_project_linkscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
298complementary_project_linksupdated_attimestamptzNãonow()NãoINDEX imz_complementary_project_links_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
299complementary_project_linksdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
300complementary_project_linksanchor_project_iduuidNãoSem predefiniçãoFK -> projects.id ON UPDATE CASCADE ON DELETE CASCADEimz_complementary_project_links_anchor_project_id_co_90eddcd25a (composta) WHERE deleted_at IS NULLimz_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 btreeanchor project idNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
301complementary_project_linkscomplementary_project_iduuidNãoSem predefiniçãoFK -> projects.id ON UPDATE CASCADE ON DELETE CASCADEimz_complementary_project_links_anchor_project_id_co_90eddcd25a (composta) WHERE deleted_at IS NULLimz_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 btreecomplementary project idNãoNãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
302complementary_project_linksrelation_typetextNãoSem predefiniçãoimz_complementary_project_links_anchor_project_id_co_90eddcd25a (composta) WHERE deleted_at IS NULLimz_complementary_project_links_check_03: relation_type IN ('dependency','enabler','supplier','market') INDEX imz_complementary_project_links_anchor_project_id_co_90eddcd25a btreerelation typerelation_type IN ('dependency','enabler','supplier','market')NãoFalseFalsedatabase/migrations/2026_09_24_005000_investmoz_clusters.phpReconciliado A.25/A.26 e A.31
303development_corridorsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
304development_corridorssource_systemtextNão'investmoz'imz_development_corridors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_development_corridors_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
305development_corridorsexternal_idtextSimNULLimz_development_corridors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_development_corridors_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
306development_corridorsversion_nointegerNão1Nãoimz_development_corridors_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
307development_corridorsdata_classificationtextNão'internal'Nãoimz_development_corridors_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
308development_corridorscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
309development_corridorscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
310development_corridorsupdated_attimestamptzNãonow()NãoINDEX imz_development_corridors_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
311development_corridorsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
312development_corridorscodetextNãoSem predefiniçãoimz_development_corridors_code_uq WHERE deleted_at IS NULLINDEX imz_development_corridors_code_uq btreecodeNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
313development_corridorsnametextNãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
314development_corridorsstatustextNãoSem predefiniçãoNãoimz_development_corridors_check_03: status IN ('proposed','active','closed') INDEX imz_development_corridors_status_idx btreestatusstatus IN ('proposed','active','closed')NãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
315development_corridorsdescriptiontextSimNULLNãodescriptionNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
316corridor_locationsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
317corridor_locationssource_systemtextNão'investmoz'imz_corridor_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_corridor_locations_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
318corridor_locationsexternal_idtextSimNULLimz_corridor_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_corridor_locations_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
319corridor_locationsversion_nointegerNão1Nãoimz_corridor_locations_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
320corridor_locationsdata_classificationtextNão'internal'Nãoimz_corridor_locations_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
321corridor_locationscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
322corridor_locationscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
323corridor_locationsupdated_attimestamptzNãonow()NãoINDEX imz_corridor_locations_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
324corridor_locationsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
325corridor_locationscorridor_iduuidNãoSem predefiniçãoFK -> development_corridors.id ON UPDATE CASCADE ON DELETE CASCADEimz_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 NULLINDEX 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 btreecorridor idNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
326corridor_locationsgeo_location_iduuidNãoSem predefiniçãoFK -> geo_locations.id ON UPDATE CASCADE ON DELETE RESTRICTimz_corridor_locations_corridor_id_geo_location_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_corridor_locations_geo_location_id_idx btree; INDEX imz_corridor_locations_corridor_id_geo_location_id_uq btreegeo location idNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
327corridor_locationssequence_nointegerNãoSem predefiniçãoimz_corridor_locations_corridor_id_sequence_no_uq (composta) WHERE deleted_at IS NULLimz_corridor_locations_check_03: sequence_no>0 INDEX imz_corridor_locations_corridor_id_sequence_no_uq btreesequence noNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
328corridor_projectsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
329corridor_projectssource_systemtextNão'investmoz'imz_corridor_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_corridor_projects_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
330corridor_projectsexternal_idtextSimNULLimz_corridor_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_corridor_projects_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
331corridor_projectsversion_nointegerNão1Nãoimz_corridor_projects_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
332corridor_projectsdata_classificationtextNão'internal'Nãoimz_corridor_projects_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
333corridor_projectscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
334corridor_projectscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
335corridor_projectsupdated_attimestamptzNãonow()NãoINDEX imz_corridor_projects_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
336corridor_projectsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
337corridor_projectscorridor_iduuidNãoSem predefiniçãoFK -> development_corridors.id ON UPDATE CASCADE ON DELETE CASCADEimz_corridor_projects_corridor_id_project_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_corridor_projects_corridor_id_idx btree; INDEX imz_corridor_projects_corridor_id_project_id_uq btreecorridor idNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
338corridor_projectsproject_iduuidNãoSem predefiniçãoFK -> projects.id ON UPDATE CASCADE ON DELETE CASCADEimz_corridor_projects_corridor_id_project_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_corridor_projects_project_id_idx btree; INDEX imz_corridor_projects_corridor_id_project_id_uq btreeproject idNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
339corridor_clustersiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
340corridor_clusterssource_systemtextNão'investmoz'imz_corridor_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_corridor_clusters_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
341corridor_clustersexternal_idtextSimNULLimz_corridor_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_corridor_clusters_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
342corridor_clustersversion_nointegerNão1Nãoimz_corridor_clusters_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
343corridor_clustersdata_classificationtextNão'internal'Nãoimz_corridor_clusters_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
344corridor_clusterscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
345corridor_clusterscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
346corridor_clustersupdated_attimestamptzNãonow()NãoINDEX imz_corridor_clusters_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
347corridor_clustersdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
348corridor_clusterscorridor_iduuidNãoSem predefiniçãoFK -> development_corridors.id ON UPDATE CASCADE ON DELETE CASCADEimz_corridor_clusters_corridor_id_cluster_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_corridor_clusters_corridor_id_idx btree; INDEX imz_corridor_clusters_corridor_id_cluster_id_uq btreecorridor idNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
349corridor_clusterscluster_iduuidNãoSem predefiniçãoFK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADEimz_corridor_clusters_corridor_id_cluster_id_uq (composta) WHERE deleted_at IS NULLINDEX imz_corridor_clusters_cluster_id_idx btree; INDEX imz_corridor_clusters_corridor_id_cluster_id_uq btreecluster idNãoNãoFalseFalsedatabase/migrations/2026_09_24_006000_investmoz_corridors.phpReconciliado A.25/A.26 e A.31
350investorsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
351investorssource_systemtextNão'investmoz'imz_investors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_investors_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
352investorsexternal_idtextSimNULLimz_investors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_investors_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
353investorsversion_nointegerNão1Nãoimz_investors_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
354investorsdata_classificationtextNão'internal'Nãoimz_investors_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
355investorscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
356investorscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
357investorsupdated_attimestamptzNãonow()NãoINDEX imz_investors_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
358investorsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
359investorsorganization_iduuidSimNULLFK -> organizations.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_investors_organization_id_idx btreeorganization idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
360investorslegal_nametextNãoSem predefiniçãoNãolegal nameNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
361investorsinvestor_typetextNãoSem predefiniçãoNãoimz_investors_check_03: investor_type IN ('domestic','foreign','institutional','individual')investor typeinvestor_type IN ('domestic','foreign','institutional','individual')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
362investorsstatustextNãoSem predefiniçãoNãoimz_investors_check_04: status IN ('prospect','active','inactive') INDEX imz_investors_status_idx btreestatusstatus IN ('prospect','active','inactive')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
363contactsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
364contactssource_systemtextNão'investmoz'imz_contacts_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_contacts_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
365contactsexternal_idtextSimNULLimz_contacts_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_contacts_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
366contactsversion_nointegerNão1Nãoimz_contacts_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
367contactsdata_classificationtextNão'internal'Nãoimz_contacts_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
368contactscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
369contactscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
370contactsupdated_attimestamptzNãonow()NãoINDEX imz_contacts_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
371contactsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
372contactsfull_nametextNãoSem predefiniçãoNãofull nameNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
373contactsemailtextSimNULLNãoemailNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
374contactsphonetextSimNULLNãophoneNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
375investor_contactsinvestor_iduuidNãoSem predefiniçãoPK; FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADEPRIMARY KEY composta: investor_id, contact_idINDEX imz_investor_contacts_investor_id_idx btreeinvestor idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
376investor_contactscontact_iduuidNãoSem predefiniçãoPK; FK -> contacts.id ON UPDATE CASCADE ON DELETE CASCADEPRIMARY KEY composta: investor_id, contact_idINDEX imz_investor_contacts_contact_id_idx btreecontact idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
377investor_contactsis_primarybooleanNãofalseNãoContacto principal deste investidor; limite quantitativo pendenteNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
378investor_contactscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
379investor_contactsupdated_attimestamptzNãonow()NãoINDEX imz_investor_contacts_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
380leadsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
381leadssource_systemtextNão'investmoz'imz_leads_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_leads_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
382leadsexternal_idtextSimNULLimz_leads_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_leads_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
383leadsversion_nointegerNão1Nãoimz_leads_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
384leadsdata_classificationtextNão'internal'Nãoimz_leads_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
385leadscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
386leadscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
387leadsupdated_attimestamptzNãonow()NãoINDEX imz_leads_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
388leadsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
389leadsinvestor_iduuidSimNULLFK -> investors.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_leads_investor_id_idx btreeinvestor idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
390leadsowner_user_idbigintSimNULLFK -> users.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_leads_owner_user_id_idx btreeowner user idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
391leadstitletextNãoSem predefiniçãoNãotitleNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
392leadsstatustextNãoSem predefiniçãoNãoimz_leads_check_03: status IN ('new','qualified','disqualified','converted') INDEX imz_leads_status_idx btreestatusstatus IN ('new','qualified','disqualified','converted')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
393leadsestimated_amountnumeric(20,2)SimNULLNãoimz_leads_check_04: (estimated_amount IS NULL)=(currency IS NULL); imz_leads_check_05: estimated_amount IS NULL OR estimated_amount >= 0Montante estimado exacto não negativoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
394leadscurrencychar(3)SimNULLNãoimz_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 pendenteNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
395crm_opportunitiesiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
396crm_opportunitiessource_systemtextNão'investmoz'imz_crm_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_crm_opportunities_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
397crm_opportunitiesexternal_idtextSimNULLimz_crm_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_crm_opportunities_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
398crm_opportunitiesversion_nointegerNão1Nãoimz_crm_opportunities_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
399crm_opportunitiesdata_classificationtextNão'internal'Nãoimz_crm_opportunities_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
400crm_opportunitiescorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
401crm_opportunitiescreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
402crm_opportunitiesupdated_attimestamptzNãonow()NãoINDEX imz_crm_opportunities_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
403crm_opportunitiesdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
404crm_opportunitieslead_iduuidSimNULLFK -> leads.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_crm_opportunities_lead_id_idx btreelead idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
405crm_opportunitiesproject_iduuidSimNULLFK -> projects.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_crm_opportunities_project_id_idx btreeproject idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
406crm_opportunitiesowner_user_idbigintSimNULLFK -> users.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_crm_opportunities_owner_user_id_idx btreeowner user idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
407crm_opportunitiesstagetextNãoSem predefiniçãoNãoimz_crm_opportunities_check_03: stage IN ('discovery','assessment','negotiation','approved','lost')stagestage IN ('discovery','assessment','negotiation','approved','lost')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
408crm_opportunitiesamountnumeric(20,2)SimNULLNãoimz_crm_opportunities_check_05: (amount IS NULL)=(currency IS NULL); imz_crm_opportunities_check_06: amount IS NULL OR amount >= 0Montante monetário exacto não negativoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
409crm_opportunitiescurrencychar(3)SimNULLNãoimz_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 pendenteNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
410crm_opportunitiesprobabilitynumeric(5,2)SimNULLNãoimz_crm_opportunities_check_04: probability BETWEEN 0 AND 100probabilityNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
411activitiesiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
412activitiessource_systemtextNão'investmoz'imz_activities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_activities_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
413activitiesexternal_idtextSimNULLimz_activities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_activities_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
414activitiesversion_nointegerNão1Nãoimz_activities_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
415activitiesdata_classificationtextNão'internal'Nãoimz_activities_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
416activitiescorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
417activitiescreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
418activitiesupdated_attimestamptzNãonow()NãoINDEX imz_activities_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
419activitiesdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
420activitiesinvestor_iduuidSimNULLFK -> investors.id ON UPDATE CASCADE ON DELETE CASCADENãoINDEX imz_activities_investor_id_idx btreeinvestor idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
421activitiesopportunity_iduuidSimNULLFK -> crm_opportunities.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_activities_opportunity_id_idx btreeopportunity idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
422activitiesactor_user_idbigintSimNULLFK -> users.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_activities_actor_user_id_idx btreeactor user idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
423activitiesactivity_typetextNãoSem predefiniçãoNãoimz_activities_check_03: activity_type IN ('call','meeting','email','note')activity typeactivity_type IN ('call','meeting','email','note')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
424activitiesoccurred_attimestamptzNãoSem predefiniçãoNãooccurred atNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
425activitiessummarytextNãoSem predefiniçãoNãosummaryNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
426tasksiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
427taskssource_systemtextNão'investmoz'imz_tasks_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_tasks_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
428tasksexternal_idtextSimNULLimz_tasks_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_tasks_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
429tasksversion_nointegerNão1Nãoimz_tasks_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
430tasksdata_classificationtextNão'internal'Nãoimz_tasks_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
431taskscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
432taskscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
433tasksupdated_attimestamptzNãonow()NãoINDEX imz_tasks_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
434tasksdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
435tasksassignee_user_idbigintSimNULLFK -> users.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_tasks_assignee_user_id_idx btreeassignee user idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
436tasksopportunity_iduuidSimNULLFK -> crm_opportunities.id ON UPDATE CASCADE ON DELETE CASCADENãoINDEX imz_tasks_opportunity_id_idx btreeopportunity idNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
437taskstitletextNãoSem predefiniçãoNãotitleNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
438tasksstatustextNãoSem predefiniçãoNãoimz_tasks_check_03: status IN ('open','in_progress','done','cancelled') INDEX imz_tasks_status_idx btreestatusstatus IN ('open','in_progress','done','cancelled')NãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
439tasksdue_attimestamptzSimNULLNãodue atNãoNãoFalseFalsedatabase/migrations/2026_09_24_007000_investmoz_crm.phpReconciliado A.25/A.26 e A.31
440investor_journeysiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
441investor_journeyssource_systemtextNão'investmoz'imz_investor_journeys_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_investor_journeys_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
442investor_journeysexternal_idtextSimNULLimz_investor_journeys_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_investor_journeys_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
443investor_journeysversion_nointegerNão1Nãoimz_investor_journeys_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
444investor_journeysdata_classificationtextNão'internal'Nãoimz_investor_journeys_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
445investor_journeyscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
446investor_journeyscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
447investor_journeysupdated_attimestamptzNãonow()NãoINDEX imz_investor_journeys_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
448investor_journeysdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
449investor_journeysinvestor_iduuidNãoSem predefiniçãoFK -> investors.id ON UPDATE CASCADE ON DELETE CASCADENãoINDEX imz_investor_journeys_investor_id_idx btreeinvestor idNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
450investor_journeysopportunity_iduuidSimNULLFK -> crm_opportunities.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_investor_journeys_opportunity_id_idx btreeopportunity idNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
451investor_journeysstatustextNãoSem predefiniçãoNãoimz_investor_journeys_check_03: status IN ('started','active','completed','cancelled') INDEX imz_investor_journeys_status_idx btreestatusstatus IN ('started','active','completed','cancelled')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
452investor_journeysstarted_attimestamptzNãonow()Nãostarted atNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
453journey_stepsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
454journey_stepssource_systemtextNão'investmoz'imz_journey_steps_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_journey_steps_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
455journey_stepsexternal_idtextSimNULLimz_journey_steps_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_journey_steps_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
456journey_stepsversion_nointegerNão1Nãoimz_journey_steps_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
457journey_stepsdata_classificationtextNão'internal'Nãoimz_journey_steps_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
458journey_stepscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
459journey_stepscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
460journey_stepsupdated_attimestamptzNãonow()NãoINDEX imz_journey_steps_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
461journey_stepsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
462journey_stepsjourney_iduuidNãoSem predefiniçãoFK -> investor_journeys.id ON UPDATE CASCADE ON DELETE CASCADEimz_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 NULLINDEX 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 btreejourney idNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
463journey_stepsstep_codetextNãoSem predefiniçãoimz_journey_steps_journey_id_step_code_uq (composta) WHERE deleted_at IS NULLINDEX imz_journey_steps_journey_id_step_code_uq btreestep codeNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
464journey_stepssequence_nointegerNãoSem predefiniçãoimz_journey_steps_journey_id_sequence_no_uq (composta) WHERE deleted_at IS NULLimz_journey_steps_check_03: sequence_no>0 INDEX imz_journey_steps_journey_id_sequence_no_uq btreesequence noNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
465journey_stepsstatustextNãoSem predefiniçãoNãoimz_journey_steps_check_04: status IN ('pending','active','completed','blocked') INDEX imz_journey_steps_status_idx btreestatusstatus IN ('pending','active','completed','blocked')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
466submissionsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
467submissionssource_systemtextNão'investmoz'imz_submissions_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_submissions_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
468submissionsexternal_idtextSimNULLimz_submissions_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_submissions_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
469submissionsversion_nointegerNão1Nãoimz_submissions_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
470submissionsdata_classificationtextNão'internal'Nãoimz_submissions_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
471submissionscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
472submissionscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
473submissionsupdated_attimestamptzNãonow()NãoINDEX imz_submissions_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
474submissionsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
475submissionsjourney_step_iduuidNãoSem predefiniçãoFK -> journey_steps.id ON UPDATE CASCADE ON DELETE CASCADENãoINDEX imz_submissions_journey_step_id_idx btreejourney step idNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
476submissionssubmitted_bybigintSimNULLFK -> users.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_submissions_submitted_by_idx btreesubmitted byNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
477submissionsstatustextNãoSem predefiniçãoNãoimz_submissions_check_03: status IN ('draft','submitted','accepted','rejected') INDEX imz_submissions_status_idx btreestatusstatus IN ('draft','submitted','accepted','rejected')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
478submissionspayloadjsonbNão'{}'::jsonbNãoINDEX imz_submissions_payload_idx ginConteúdo da submissão/evento; contrato por tipo pendenteNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
479submissionssubmitted_attimestamptzSimNULLNãosubmitted atNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
480aftercare_plansiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
481aftercare_planssource_systemtextNão'investmoz'imz_aftercare_plans_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_aftercare_plans_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
482aftercare_plansexternal_idtextSimNULLimz_aftercare_plans_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_aftercare_plans_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
483aftercare_plansversion_nointegerNão1Nãoimz_aftercare_plans_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
484aftercare_plansdata_classificationtextNão'internal'Nãoimz_aftercare_plans_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
485aftercare_planscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
486aftercare_planscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
487aftercare_plansupdated_attimestamptzNãonow()NãoINDEX imz_aftercare_plans_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
488aftercare_plansdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
489aftercare_plansinvestor_iduuidNãoSem predefiniçãoFK -> investors.id ON UPDATE CASCADE ON DELETE CASCADENãoINDEX imz_aftercare_plans_investor_id_idx btreeinvestor idNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
490aftercare_plansproject_iduuidSimNULLFK -> projects.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_aftercare_plans_project_id_idx btreeproject idNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
491aftercare_plansowner_user_idbigintSimNULLFK -> users.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_aftercare_plans_owner_user_id_idx btreeowner user idNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
492aftercare_plansstatustextNãoSem predefiniçãoNãoimz_aftercare_plans_check_03: status IN ('draft','active','closed') INDEX imz_aftercare_plans_status_idx btreestatusstatus IN ('draft','active','closed')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
493aftercare_plansreview_datedateSimNULLNãoreview dateNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
494constraintsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
495constraintssource_systemtextNão'investmoz'imz_constraints_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_constraints_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
496constraintsexternal_idtextSimNULLimz_constraints_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_constraints_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
497constraintsversion_nointegerNão1Nãoimz_constraints_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
498constraintsdata_classificationtextNão'internal'Nãoimz_constraints_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
499constraintscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
500constraintscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
501constraintsupdated_attimestamptzNãonow()NãoINDEX imz_constraints_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
502constraintsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
503constraintsaftercare_plan_iduuidNãoSem predefiniçãoFK -> aftercare_plans.id ON UPDATE CASCADE ON DELETE CASCADENãoINDEX imz_constraints_aftercare_plan_id_idx btreeaftercare plan idNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
504constraintscategorytextNãoSem predefiniçãoNãocategoryNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
505constraintsdescriptiontextNãoSem predefiniçãoNãodescriptionNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
506constraintsseveritytextNãoSem predefiniçãoNãoimz_constraints_check_03: severity IN ('low','medium','high','critical')severityseverity IN ('low','medium','high','critical')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
507constraintsstatustextNãoSem predefiniçãoNãoimz_constraints_check_04: status IN ('open','mitigating','resolved') INDEX imz_constraints_status_idx btreestatusstatus IN ('open','mitigating','resolved')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
508escalationsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
509escalationssource_systemtextNão'investmoz'imz_escalations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_escalations_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
510escalationsexternal_idtextSimNULLimz_escalations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_escalations_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
511escalationsversion_nointegerNão1Nãoimz_escalations_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
512escalationsdata_classificationtextNão'internal'Nãoimz_escalations_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
513escalationscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
514escalationscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
515escalationsupdated_attimestamptzNãonow()NãoINDEX imz_escalations_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
516escalationsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
517escalationsconstraint_iduuidNãoSem predefiniçãoFK -> constraints.id ON UPDATE CASCADE ON DELETE CASCADENãoINDEX imz_escalations_constraint_id_idx btreeconstraint idNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
518escalationsescalated_bybigintSimNULLFK -> users.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_escalations_escalated_by_idx btreeescalated byNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
519escalationsleveltextNãoSem predefiniçãoNãoimz_escalations_check_03: level IN ('operational','management','executive')levellevel IN ('operational','management','executive')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
520escalationsstatustextNãoSem predefiniçãoNãoimz_escalations_check_04: status IN ('open','acknowledged','closed') INDEX imz_escalations_status_idx btreestatusstatus IN ('open','acknowledged','closed')NãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
521escalationsescalated_attimestamptzNãonow()Nãoescalated atNãoNãoFalseFalsedatabase/migrations/2026_09_24_008000_investmoz_journey_aftercare.phpReconciliado A.25/A.26 e A.31
522skillsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
523skillssource_systemtextNão'investmoz'imz_skills_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_skills_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
524skillsexternal_idtextSimNULLimz_skills_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_skills_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
525skillsversion_nointegerNão1Nãoimz_skills_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
526skillsdata_classificationtextNão'internal'Nãoimz_skills_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
527skillscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
528skillscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
529skillsupdated_attimestamptzNãonow()NãoINDEX imz_skills_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
530skillsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
531skillscodetextNãoSem predefiniçãoimz_skills_code_uq WHERE deleted_at IS NULLINDEX imz_skills_code_uq btreecodeNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
532skillsnametextNãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
533occupationsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
534occupationssource_systemtextNão'investmoz'imz_occupations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_occupations_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
535occupationsexternal_idtextSimNULLimz_occupations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_occupations_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
536occupationsversion_nointegerNão1Nãoimz_occupations_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
537occupationsdata_classificationtextNão'internal'Nãoimz_occupations_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
538occupationscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
539occupationscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
540occupationsupdated_attimestamptzNãonow()NãoINDEX imz_occupations_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
541occupationsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
542occupationscodetextNãoSem predefiniçãoimz_occupations_code_uq WHERE deleted_at IS NULLINDEX imz_occupations_code_uq btreecodeNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
543occupationsnametextNãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
544training_needsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
545training_needssource_systemtextNão'investmoz'imz_training_needs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_training_needs_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
546training_needsexternal_idtextSimNULLimz_training_needs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_training_needs_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
547training_needsversion_nointegerNão1Nãoimz_training_needs_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
548training_needsdata_classificationtextNão'internal'Nãoimz_training_needs_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
549training_needscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
550training_needscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
551training_needsupdated_attimestamptzNãonow()NãoINDEX imz_training_needs_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
552training_needsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
553training_needsproject_iduuidSimNULLFK -> projects.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_training_needs_project_id_idx btreeproject idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
554training_needsoccupation_iduuidSimNULLFK -> occupations.id ON UPDATE CASCADE ON DELETE RESTRICTNãoINDEX imz_training_needs_occupation_id_idx btreeoccupation idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
555training_needsskill_iduuidSimNULLFK -> skills.id ON UPDATE CASCADE ON DELETE RESTRICTNãoINDEX imz_training_needs_skill_id_idx btreeskill idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
556training_needsquantityintegerNãoSem predefiniçãoNãoimz_training_needs_check_03: quantity>0quantityNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
557training_needsprioritytextNãoSem predefiniçãoNãoimz_training_needs_check_04: priority IN ('Must','Should','Could')prioritypriority IN ('Must','Should','Could')NãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
558training_providersiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
559training_providerssource_systemtextNão'investmoz'imz_training_providers_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_training_providers_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
560training_providersexternal_idtextSimNULLimz_training_providers_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_training_providers_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
561training_providersversion_nointegerNão1Nãoimz_training_providers_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
562training_providersdata_classificationtextNão'internal'Nãoimz_training_providers_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
563training_providerscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
564training_providerscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
565training_providersupdated_attimestamptzNãonow()NãoINDEX imz_training_providers_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
566training_providersdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
567training_providersorganization_iduuidSimNULLFK -> organizations.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_training_providers_organization_id_idx btreeorganization idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
568training_providersnametextNãoSem predefiniçãoNãonameNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
569training_providersstatustextNãoSem predefiniçãoNãoimz_training_providers_check_03: status IN ('candidate','approved','inactive') INDEX imz_training_providers_status_idx btreestatusstatus IN ('candidate','approved','inactive')NãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
570coursesiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
571coursessource_systemtextNão'investmoz'imz_courses_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_courses_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
572coursesexternal_idtextSimNULLimz_courses_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_courses_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
573coursesversion_nointegerNão1Nãoimz_courses_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
574coursesdata_classificationtextNão'internal'Nãoimz_courses_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
575coursescorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
576coursescreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
577coursesupdated_attimestamptzNãonow()NãoINDEX imz_courses_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
578coursesdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
579coursesprovider_iduuidNãoSem predefiniçãoFK -> training_providers.id ON UPDATE CASCADE ON DELETE CASCADEimz_courses_provider_id_code_uq (composta) WHERE deleted_at IS NULLINDEX imz_courses_provider_id_idx btree; INDEX imz_courses_provider_id_code_uq btreeprovider idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
580coursescodetextNãoSem predefiniçãoimz_courses_provider_id_code_uq (composta) WHERE deleted_at IS NULLINDEX imz_courses_provider_id_code_uq btreecodeNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
581coursestitletextNãoSem predefiniçãoNãotitleNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
582coursesstatustextNãoSem predefiniçãoNãoimz_courses_check_03: status IN ('draft','published','retired') INDEX imz_courses_status_idx btreestatusstatus IN ('draft','published','retired')NãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
583education_opportunitiesiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
584education_opportunitiessource_systemtextNão'investmoz'imz_education_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_education_opportunities_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
585education_opportunitiesexternal_idtextSimNULLimz_education_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_education_opportunities_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
586education_opportunitiesversion_nointegerNão1Nãoimz_education_opportunities_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
587education_opportunitiesdata_classificationtextNão'internal'Nãoimz_education_opportunities_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
588education_opportunitiescorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
589education_opportunitiescreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
590education_opportunitiesupdated_attimestamptzNãonow()NãoINDEX imz_education_opportunities_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
591education_opportunitiesdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
592education_opportunitiescourse_iduuidNãoSem predefiniçãoFK -> courses.id ON UPDATE CASCADE ON DELETE CASCADENãoINDEX imz_education_opportunities_course_id_idx btreecourse idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
593education_opportunitiesgeo_location_iduuidSimNULLFK -> geo_locations.id ON UPDATE CASCADE ON DELETE SET NULLNãoINDEX imz_education_opportunities_geo_location_id_idx btreegeo location idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
594education_opportunitiesstart_datedateNãoSem predefiniçãoNãoimz_education_opportunities_check_05: end_date IS NULL OR end_date>=start_datestart dateNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
595education_opportunitiesend_datedateSimNULLNãoimz_education_opportunities_check_05: end_date IS NULL OR end_date>=start_dateend dateNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
596education_opportunitiescapacityintegerSimNULLNãoimz_education_opportunities_check_03: capacity>=0capacityNãoNãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
597education_opportunitiesstatustextNãoSem predefiniçãoNãoimz_education_opportunities_check_04: status IN ('planned','open','closed','cancelled') INDEX imz_education_opportunities_status_idx btreestatusstatus IN ('planned','open','closed','cancelled')NãoFalseFalsedatabase/migrations/2026_09_24_009000_investmoz_education.phpReconciliado A.25/A.26 e A.31
598project_documentsproject_iduuidNãoSem predefiniçãoPK; FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADEPRIMARY KEY composta: project_id, document_idINDEX imz_project_documents_project_id_idx btreeproject idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
599project_documentsdocument_iduuidNãoSem predefiniçãoPK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICTPRIMARY KEY composta: project_id, document_idINDEX imz_project_documents_document_id_idx btreedocument idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
600project_documentscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
601investor_documentsinvestor_iduuidNãoSem predefiniçãoPK; FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADEPRIMARY KEY composta: investor_id, document_idINDEX imz_investor_documents_investor_id_idx btreeinvestor idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
602investor_documentsdocument_iduuidNãoSem predefiniçãoPK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICTPRIMARY KEY composta: investor_id, document_idINDEX imz_investor_documents_document_id_idx btreedocument idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
603investor_documentscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
604journey_documentsjourney_iduuidNãoSem predefiniçãoPK; FK -> investor_journeys.id ON UPDATE CASCADE ON DELETE CASCADEPRIMARY KEY composta: journey_id, document_idINDEX imz_journey_documents_journey_id_idx btreejourney idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
605journey_documentsdocument_iduuidNãoSem predefiniçãoPK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICTPRIMARY KEY composta: journey_id, document_idINDEX imz_journey_documents_document_id_idx btreedocument idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
606journey_documentscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
607aftercare_documentsaftercare_plan_iduuidNãoSem predefiniçãoPK; FK -> aftercare_plans.id ON UPDATE CASCADE ON DELETE CASCADEPRIMARY KEY composta: aftercare_plan_id, document_idINDEX imz_aftercare_documents_aftercare_plan_id_idx btreeaftercare plan idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
608aftercare_documentsdocument_iduuidNãoSem predefiniçãoPK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICTPRIMARY KEY composta: aftercare_plan_id, document_idINDEX imz_aftercare_documents_document_id_idx btreedocument idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
609aftercare_documentscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
610education_documentseducation_opportunity_iduuidNãoSem predefiniçãoPK; FK -> education_opportunities.id ON UPDATE CASCADE ON DELETE CASCADEPRIMARY KEY composta: education_opportunity_id, document_idINDEX imz_education_documents_education_opportunity_id_idx btreeeducation opportunity idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
611education_documentsdocument_iduuidNãoSem predefiniçãoPK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICTPRIMARY KEY composta: education_opportunity_id, document_idINDEX imz_education_documents_document_id_idx btreedocument idNãoNãoFalseFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
612education_documentscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_009500_investmoz_document_links.phpReconciliado A.25/A.26 e A.31
613audit_eventsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
614audit_eventssource_systemtextNão'investmoz'imz_audit_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_audit_events_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
615audit_eventsexternal_idtextSimNULLimz_audit_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_audit_events_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
616audit_eventsdata_classificationtextNão'internal'Nãoimz_audit_events_check_01: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
617audit_eventscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
618audit_eventscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
619audit_eventsactor_user_idbigintSimNULLFK -> users.id ON UPDATE RESTRICT ON DELETE RESTRICTNãoINDEX imz_audit_events_actor_user_id_idx btreeactor user idNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
620audit_eventsentity_typetextNãoSem predefiniçãoNãoentity typeNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
621audit_eventsentity_iduuidSimNULLNãoID histórico UUID sem FK; a entidade pode já não existirNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
622audit_eventsactiontextNãoSem predefiniçãoNãoactionNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
623audit_eventsoccurred_attimestamptzNãonow()Nãooccurred atNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
624audit_eventsbefore_datajsonbSimNULLNãoRepresentação anterior; aplicação deve remover segredosNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
625audit_eventsafter_datajsonbSimNULLNãoINDEX imz_audit_events_after_data_idx ginRepresentação posterior; aplicação deve remover segredosNãoNãoFalseFalsedatabase/migrations/2026_09_24_010000_investmoz_governance_ai.phpReconciliado A.25/A.26 e A.31
626outbox_eventsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
627outbox_eventssource_systemtextNão'investmoz'imz_outbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_outbox_events_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
628outbox_eventsexternal_idtextSimNULLimz_outbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_outbox_events_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
629outbox_eventsversion_nointegerNão1Nãoimz_outbox_events_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
630outbox_eventsdata_classificationtextNão'internal'Nãoimz_outbox_events_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
631outbox_eventscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
632outbox_eventscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
633outbox_eventsupdated_attimestamptzNãonow()NãoINDEX imz_outbox_events_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
634outbox_eventsaggregate_typetextNãoSem predefiniçãoNãoaggregate typeNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
635outbox_eventsaggregate_iduuidNãoSem predefiniçãoNãoUUID do agregado produtor; sem FK polimórficaNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
636outbox_eventsevent_typetextNãoSem predefiniçãoNãoevent typeNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
637outbox_eventspayloadjsonbNãoSem predefiniçãoNãoConteúdo da submissão/evento; contrato por tipo pendenteNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
638outbox_eventsstatustextNãoSem predefiniçãoNãoimz_outbox_events_check_03: status IN ('pending','published','failed') INDEX imz_outbox_events_status_idx btree; INDEX imz_outbox_events_status_available_at_idx btreestatusstatus IN ('pending','published','failed')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
639outbox_eventsavailable_attimestamptzNãonow()NãoINDEX imz_outbox_events_status_available_at_idx btreeavailable atNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
640outbox_eventspublished_attimestamptzSimNULLNãopublished atNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
641inbox_eventsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
642inbox_eventssource_systemtextNão'investmoz'imz_inbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_inbox_events_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
643inbox_eventsexternal_idtextSimNULLimz_inbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_inbox_events_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
644inbox_eventsversion_nointegerNão1Nãoimz_inbox_events_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
645inbox_eventsdata_classificationtextNão'internal'Nãoimz_inbox_events_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
646inbox_eventscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
647inbox_eventscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
648inbox_eventsupdated_attimestamptzNãonow()NãoINDEX imz_inbox_events_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
649inbox_eventsmessage_idtextNãoSem predefiniçãoimz_inbox_events_message_id_uqINDEX imz_inbox_events_message_id_uq btreemessage idNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
650inbox_eventsevent_typetextNãoSem predefiniçãoNãoevent typeNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
651inbox_eventspayloadjsonbNãoSem predefiniçãoNãoConteúdo da submissão/evento; contrato por tipo pendenteNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
652inbox_eventsstatustextNãoSem predefiniçãoNãoimz_inbox_events_check_03: status IN ('received','processed','failed') INDEX imz_inbox_events_status_idx btreestatusstatus IN ('received','processed','failed')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
653inbox_eventsreceived_attimestamptzNãonow()Nãoreceived atNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
654inbox_eventsprocessed_attimestamptzSimNULLNãoprocessed atNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
655sync_runsiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
656sync_runssource_systemtextNão'investmoz'imz_sync_runs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_sync_runs_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
657sync_runsexternal_idtextSimNULLimz_sync_runs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_sync_runs_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
658sync_runsversion_nointegerNão1Nãoimz_sync_runs_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
659sync_runsdata_classificationtextNão'internal'Nãoimz_sync_runs_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
660sync_runscorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
661sync_runscreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
662sync_runsupdated_attimestamptzNãonow()NãoINDEX imz_sync_runs_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
663sync_runsdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
664sync_runsintegration_nametextNãoSem predefiniçãoNãointegration nameNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
665sync_runsdirectiontextNãoSem predefiniçãoNãoimz_sync_runs_check_03: direction IN ('inbound','outbound')directiondirection IN ('inbound','outbound')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
666sync_runsstatustextNãoSem predefiniçãoNãoimz_sync_runs_check_04: status IN ('running','succeeded','failed','cancelled') INDEX imz_sync_runs_status_idx btreestatusstatus IN ('running','succeeded','failed','cancelled')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
667sync_runsstarted_attimestamptzNãonow()Nãostarted atNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
668sync_runsended_attimestamptzSimNULLNãoended atNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
669sync_runstotalsjsonbNão'{}'::jsonbNãototalsNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
670reconciliation_issuesiduuidNãogen_random_uuid()PKPRIMARY KEYIdentificador primário da entidadeNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
671reconciliation_issuessource_systemtextNão'investmoz'imz_reconciliation_issues_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_reconciliation_issues_source_system_external_id_uq btreeSistema de origem; integra a chave estável de importaçãoNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
672reconciliation_issuesexternal_idtextSimNULLimz_reconciliation_issues_source_system_external_id_uq (composta) WHERE external_id IS NOT NULLINDEX imz_reconciliation_issues_source_system_external_id_uq btreeIdentificador na origem; NULL quando não fornecidoNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
673reconciliation_issuesversion_nointegerNão1Nãoimz_reconciliation_issues_check_01: version_no > 0Versão positiva; comparação compete ao importadorNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
674reconciliation_issuesdata_classificationtextNão'internal'Nãoimz_reconciliation_issues_check_02: data_classification IN ('public','internal','confidential','restricted')Classificação de acesso; não substitui autorizaçãodata_classification IN ('public','internal','confidential','restricted')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
675reconciliation_issuescorrelation_iduuidSimNULLNãoCorrelação entre operações; não é FKNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
676reconciliation_issuescreated_attimestamptzNãonow()NãoInstante de criaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
677reconciliation_issuesupdated_attimestamptzNãonow()NãoINDEX imz_reconciliation_issues_updated_at_idx btreeInstante da última actualizaçãoNãoNãoTrueFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
678reconciliation_issuesdeleted_attimestamptzSimNULLNãoEliminação lógica; NULL indica activoNãoNãoFalseTruedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
679reconciliation_issuessync_run_iduuidNãoSem predefiniçãoFK -> sync_runs.id ON UPDATE CASCADE ON DELETE CASCADENãoINDEX imz_reconciliation_issues_sync_run_id_idx btree; INDEX imz_reconciliation_issues_sync_run_id_status_idx btreesync run idNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
680reconciliation_issuesentity_typetextNãoSem predefiniçãoNãoentity typeNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
681reconciliation_issuesexternal_id_reftextSimNULLNãoexternal id refNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
682reconciliation_issuesissue_typetextNãoSem predefiniçãoNãoimz_reconciliation_issues_check_03: issue_type IN ('missing','duplicate','orphan','checksum','geometry','value')issue typeissue_type IN ('missing','duplicate','orphan','checksum','geometry','value')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
683reconciliation_issuesseveritytextNãoSem predefiniçãoNãoimz_reconciliation_issues_check_04: severity IN ('warning','error')severityseverity IN ('warning','error')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
684reconciliation_issuesstatustextNãoSem predefiniçãoNãoimz_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 btreestatusstatus IN ('open','accepted','resolved')NãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31
685reconciliation_issuesdetailsjsonbNão'{}'::jsonbNãodetailsNãoNãoFalseFalsedatabase/migrations/2026_09_24_011000_investmoz_integrations.phpReconciliado A.25/A.26 e A.31