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

686 lines
179 KiB
CSV

Tabela,Campo,Tipo PostgreSQL,Nulo,Predefinição,PK/FK,Único,Restrição/índice,Descrição,Enumeração CHECK,Calculado,Timestamp técnico,Soft delete,Migration,Observações
users,id,bigint,Não,nextval('users_id_seq'::regclass),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
users,name,character varying(255),Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
users,email,character varying(255),Não,Sem predefinição,,users_email_unique,INDEX users_email_unique btree,email,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
users,email_verified_at,timestamp(0) without time zone,Sim,NULL,,Não,,email verified at,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
users,password,character varying(255),Não,Sem predefinição,,Não,,password,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
users,remember_token,character varying(100),Sim,NULL,,Não,,remember token,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
users,created_at,timestamp(0) without time zone,Sim,NULL,,Não,,Instante de criação,Não,Não,True,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
users,updated_at,timestamp(0) without time zone,Sim,NULL,,Não,,Instante da última actualização,Não,Não,True,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
users,two_factor_secret,text,Sim,NULL,,Não,,two factor secret,Não,Não,False,False,database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php,Legado preservado
users,two_factor_recovery_codes,text,Sim,NULL,,Não,,two factor recovery codes,Não,Não,False,False,database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php,Legado preservado
users,two_factor_confirmed_at,timestamp(0) without time zone,Sim,NULL,,Não,,two factor confirmed at,Não,Não,False,False,database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php,Legado preservado
password_reset_tokens,email,character varying(255),Não,Sem predefinição,PK,PRIMARY KEY,,email,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
password_reset_tokens,token,character varying(255),Não,Sem predefinição,,Não,,token,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
password_reset_tokens,created_at,timestamp(0) without time zone,Sim,NULL,,Não,,Instante de criação,Não,Não,True,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
sessions,id,character varying(255),Não,Sem predefinição,PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
sessions,user_id,bigint,Sim,NULL,,Não,INDEX sessions_user_id_index btree,user id,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
sessions,ip_address,character varying(45),Sim,NULL,,Não,,ip address,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
sessions,user_agent,text,Sim,NULL,,Não,,user agent,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
sessions,payload,text,Não,Sem predefinição,,Não,,Conteúdo da submissão/evento; contrato por tipo pendente,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
sessions,last_activity,integer,Não,Sem predefinição,,Não,INDEX sessions_last_activity_index btree,last activity,Não,Não,False,False,database/migrations/0001_01_01_000000_create_users_table.php,Legado preservado
cache,key,character varying(255),Não,Sem predefinição,PK,PRIMARY KEY,,key,Não,Não,False,False,database/migrations/0001_01_01_000001_create_cache_table.php,Legado preservado
cache,value,text,Não,Sem predefinição,,Não,,value,Não,Não,False,False,database/migrations/0001_01_01_000001_create_cache_table.php,Legado preservado
cache,expiration,bigint,Não,Sem predefinição,,Não,INDEX cache_expiration_index btree,expiration,Não,Não,False,False,database/migrations/0001_01_01_000001_create_cache_table.php,Legado preservado
cache_locks,key,character varying(255),Não,Sem predefinição,PK,PRIMARY KEY,,key,Não,Não,False,False,database/migrations/0001_01_01_000001_create_cache_table.php,Legado preservado
cache_locks,owner,character varying(255),Não,Sem predefinição,,Não,,owner,Não,Não,False,False,database/migrations/0001_01_01_000001_create_cache_table.php,Legado preservado
cache_locks,expiration,bigint,Não,Sem predefinição,,Não,INDEX cache_locks_expiration_index btree,expiration,Não,Não,False,False,database/migrations/0001_01_01_000001_create_cache_table.php,Legado preservado
jobs,id,bigint,Não,nextval('jobs_id_seq'::regclass),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
jobs,queue,character varying(255),Não,Sem predefinição,,Não,INDEX jobs_queue_index btree,queue,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
jobs,payload,text,Não,Sem predefinição,,Não,,Conteúdo da submissão/evento; contrato por tipo pendente,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
jobs,attempts,smallint,Não,Sem predefinição,,Não,,attempts,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
jobs,reserved_at,integer,Sim,NULL,,Não,,reserved at,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
jobs,available_at,integer,Não,Sem predefinição,,Não,,available at,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
jobs,created_at,integer,Não,Sem predefinição,,Não,,Instante de criação,Não,Não,True,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
job_batches,id,character varying(255),Não,Sem predefinição,PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
job_batches,name,character varying(255),Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
job_batches,total_jobs,integer,Não,Sem predefinição,,Não,,total jobs,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
job_batches,pending_jobs,integer,Não,Sem predefinição,,Não,,pending jobs,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
job_batches,failed_jobs,integer,Não,Sem predefinição,,Não,,failed jobs,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
job_batches,failed_job_ids,text,Não,Sem predefinição,,Não,,failed job ids,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
job_batches,options,text,Sim,NULL,,Não,,options,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
job_batches,cancelled_at,integer,Sim,NULL,,Não,,cancelled at,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
job_batches,created_at,integer,Não,Sem predefinição,,Não,,Instante de criação,Não,Não,True,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
job_batches,finished_at,integer,Sim,NULL,,Não,,finished at,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
failed_jobs,id,bigint,Não,nextval('failed_jobs_id_seq'::regclass),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
failed_jobs,uuid,character varying(255),Não,Sem predefinição,,failed_jobs_uuid_unique,INDEX failed_jobs_uuid_unique btree,uuid,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
failed_jobs,connection,character varying(255),Não,Sem predefinição,,Não,INDEX failed_jobs_connection_queue_failed_at_index btree,connection,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
failed_jobs,queue,character varying(255),Não,Sem predefinição,,Não,INDEX failed_jobs_connection_queue_failed_at_index btree,queue,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
failed_jobs,payload,text,Não,Sem predefinição,,Não,,Conteúdo da submissão/evento; contrato por tipo pendente,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
failed_jobs,exception,text,Não,Sem predefinição,,Não,,exception,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
failed_jobs,failed_at,timestamp(0) without time zone,Não,CURRENT_TIMESTAMP,,Não,INDEX failed_jobs_connection_queue_failed_at_index btree,failed at,Não,Não,False,False,database/migrations/0001_01_01_000002_create_jobs_table.php,Legado preservado
passkeys,id,bigint,Não,nextval('passkeys_id_seq'::regclass),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2024_01_01_000000_create_passkeys_table.php,Legado preservado
passkeys,user_id,bigint,Não,Sem predefinição,FK -> users.id ON UPDATE NO ACTION ON DELETE CASCADE,Não,INDEX passkeys_user_id_index btree,user id,Não,Não,False,False,database/migrations/2024_01_01_000000_create_passkeys_table.php,Legado preservado
passkeys,name,character varying(255),Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2024_01_01_000000_create_passkeys_table.php,Legado preservado
passkeys,credential_id,character varying(255),Não,Sem predefinição,,passkeys_credential_id_unique,INDEX passkeys_credential_id_unique btree,credential id,Não,Não,False,False,database/migrations/2024_01_01_000000_create_passkeys_table.php,Legado preservado
passkeys,credential,json,Não,Sem predefinição,,Não,,credential,Não,Não,False,False,database/migrations/2024_01_01_000000_create_passkeys_table.php,Legado preservado
passkeys,last_used_at,timestamp(0) without time zone,Sim,NULL,,Não,,last used at,Não,Não,False,False,database/migrations/2024_01_01_000000_create_passkeys_table.php,Legado preservado
passkeys,created_at,timestamp(0) without time zone,Sim,NULL,,Não,,Instante de criação,Não,Não,True,False,database/migrations/2024_01_01_000000_create_passkeys_table.php,Legado preservado
passkeys,updated_at,timestamp(0) without time zone,Sim,NULL,,Não,,Instante da última actualização,Não,Não,True,False,database/migrations/2024_01_01_000000_create_passkeys_table.php,Legado preservado
sectors,id,bigint,Não,nextval('sectors_id_seq'::regclass),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,name,character varying(150),Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,slug,character varying(180),Não,Sem predefinição,,sectors_slug_unique,INDEX sectors_slug_unique btree; INDEX sectors_slug_index btree,slug,Não,Não,False,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,short_description,character varying(255),Sim,NULL,,Não,,short description,Não,Não,False,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,description,text,Sim,NULL,,Não,,description,Não,Não,False,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,icon,character varying(100),Sim,NULL,,Não,,icon,Não,Não,False,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,sort_order,integer,Não,0,,Não,,sort order,Não,Não,False,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,is_active,boolean,Não,true,,Não,INDEX sectors_is_active_index btree,is active,Não,Não,False,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,published_at,timestamp(0) without time zone,Sim,NULL,,Não,,published at,Não,Não,False,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,created_at,timestamp(0) without time zone,Sim,NULL,,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,updated_at,timestamp(0) without time zone,Sim,NULL,,Não,,Instante da última actualização,Não,Não,True,False,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
sectors,deleted_at,timestamp(0) without time zone,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_01_01_000001_create_sectors_table.php,Legado preservado
opportunities,id,bigint,Não,nextval('opportunities_id_seq'::regclass),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,sector_id,bigint,Não,Sem predefinição,FK -> sectors.id ON UPDATE CASCADE ON DELETE RESTRICT,Não,INDEX opportunities_sector_id_index btree,sector id,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,reference,character varying(80),Não,Sem predefinição,,opportunities_reference_unique,INDEX opportunities_reference_unique btree; INDEX opportunities_reference_index btree,reference,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,title,character varying(200),Não,Sem predefinição,,Não,,title,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,slug,character varying(220),Não,Sem predefinição,,opportunities_slug_unique,INDEX opportunities_slug_unique btree; INDEX opportunities_slug_index btree,slug,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,summary,character varying(500),Sim,NULL,,Não,,summary,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,description,text,Sim,NULL,,Não,,description,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,province,character varying(100),Sim,NULL,,Não,INDEX opportunities_province_index btree,province,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,district,character varying(100),Sim,NULL,,Não,,district,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,promoter_name,character varying(200),Sim,NULL,,Não,,promoter name,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,promoter_type,character varying(100),Sim,NULL,,Não,,promoter type,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,maturity_level,smallint,Sim,NULL,,Não,INDEX opportunities_maturity_level_index btree,maturity level,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,maturity_label,character varying(120),Sim,NULL,,Não,,maturity label,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,estimated_investment_amount,"numeric(18,2)",Sim,NULL,,Não,,estimated investment amount,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,estimated_investment_currency,character varying(10),Não,'USD',,Não,,estimated investment currency,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,financing_modality,character varying(120),Sim,NULL,,Não,,financing modality,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,expected_impact,text,Sim,NULL,,Não,,expected impact,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,status,character varying(50),Não,'draft',,Não,INDEX opportunities_status_index btree,status,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,is_featured,boolean,Não,false,,Não,INDEX opportunities_is_featured_index btree,is featured,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,published_at,timestamp(0) without time zone,Sim,NULL,,Não,,published at,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,last_validated_at,timestamp(0) without time zone,Sim,NULL,,Não,,last validated at,Não,Não,False,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,created_at,timestamp(0) without time zone,Sim,NULL,,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,updated_at,timestamp(0) without time zone,Sim,NULL,,Não,,Instante da última actualização,Não,Não,True,False,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
opportunities,deleted_at,timestamp(0) without time zone,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_01_01_000002_create_opportunities_table.php,Legado preservado
interest_requests,id,bigint,Não,nextval('interest_requests_id_seq'::regclass),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,opportunity_id,bigint,Sim,NULL,FK -> opportunities.id ON UPDATE CASCADE ON DELETE SET NULL,Não,,opportunity id,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,reference,character varying(80),Não,Sem predefinição,,interest_requests_reference_unique,INDEX interest_requests_reference_unique btree; INDEX interest_requests_reference_index btree,reference,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,full_name,character varying(150),Não,Sem predefinição,,Não,,full name,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,email,character varying(150),Não,Sem predefinição,,Não,INDEX interest_requests_email_index btree,email,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,phone,character varying(30),Sim,NULL,,Não,,phone,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,investor_type,character varying(80),Não,Sem predefinição,,Não,,investor type,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,country,character varying(100),Não,Sem predefinição,,Não,,country,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,sector_interest,character varying(150),Não,Sem predefinição,,Não,,sector interest,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,opportunity_reference,character varying(80),Sim,NULL,,Não,,opportunity reference,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,investment_range,character varying(80),Sim,NULL,,Não,,investment range,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,message,text,Não,Sem predefinição,,Não,,message,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,privacy_consent,boolean,Não,false,,Não,,privacy consent,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,consented_at,timestamp(0) without time zone,Sim,NULL,,Não,,consented at,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,status,character varying(50),Não,'received',,Não,INDEX interest_requests_status_index btree,status,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,source_page,character varying(255),Sim,NULL,,Não,,source page,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,ip_address,inet,Sim,NULL,,Não,,ip address,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,user_agent,text,Sim,NULL,,Não,,user agent,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,metadata,json,Sim,NULL,,Não,,Metadados flexíveis; schema aplicacional pendente,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,reviewed_at,timestamp(0) without time zone,Sim,NULL,,Não,,reviewed at,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,reviewed_by,bigint,Sim,NULL,FK -> users.id ON UPDATE NO ACTION ON DELETE SET NULL,Não,,reviewed by,Não,Não,False,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,created_at,timestamp(0) without time zone,Sim,NULL,,Não,INDEX interest_requests_created_at_index btree,Instante de criação,Não,Não,True,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,updated_at,timestamp(0) without time zone,Sim,NULL,,Não,,Instante da última actualização,Não,Não,True,False,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
interest_requests,deleted_at,timestamp(0) without time zone,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_01_01_000003_create_interest_requests_table.php,Legado preservado
organizations,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
organizations,source_system,text,Não,'investmoz',,imz_organizations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_organizations_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
organizations,external_id,text,Sim,NULL,,imz_organizations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_organizations_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
organizations,version_no,integer,Não,1,,Não,imz_organizations_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
organizations,data_classification,text,Não,'internal',,Não,"imz_organizations_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
organizations,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
organizations,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
organizations,updated_at,timestamptz,Não,now(),,Não,INDEX imz_organizations_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
organizations,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
organizations,name,text,Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
organizations,organization_type,text,Não,Sem predefinição,,Não,"imz_organizations_check_03: organization_type IN ('public','private','ngo','education')",organization type,"organization_type IN ('public','private','ngo','education')",Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,source_system,text,Não,'investmoz',,imz_memberships_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_memberships_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,external_id,text,Sim,NULL,,imz_memberships_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_memberships_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,version_no,integer,Não,1,,Não,imz_memberships_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,data_classification,text,Não,'internal',,Não,"imz_memberships_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,updated_at,timestamptz,Não,now(),,Não,INDEX imz_memberships_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,user_id,bigint,Não,Sem predefinição,FK -> users.id ON UPDATE CASCADE ON DELETE CASCADE,imz_memberships_user_id_organization_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_memberships_user_id_idx btree; INDEX imz_memberships_user_id_organization_id_uq btree,user id,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,organization_id,uuid,Não,Sem predefinição,FK -> organizations.id ON UPDATE CASCADE ON DELETE CASCADE,imz_memberships_user_id_organization_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_memberships_organization_id_idx btree; INDEX imz_memberships_user_id_organization_id_uq btree,organization id,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
memberships,role,text,Não,Sem predefinição,,Não,"imz_memberships_check_03: role IN ('admin','manager','officer','viewer')",role,"role IN ('admin','manager','officer','viewer')",Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,source_system,text,Não,'investmoz',,imz_consents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_consents_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,external_id,text,Sim,NULL,,imz_consents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_consents_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,version_no,integer,Não,1,,Não,imz_consents_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,data_classification,text,Não,'internal',,Não,"imz_consents_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,updated_at,timestamptz,Não,now(),,Não,INDEX imz_consents_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,user_id,bigint,Sim,NULL,FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_consents_user_id_idx btree,user id,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,subject_ref,text,Não,Sem predefinição,,Não,,subject ref,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,purpose,text,Não,Sem predefinição,,Não,,purpose,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,status,text,Não,Sem predefinição,,Não,"imz_consents_check_03: status IN ('granted','withdrawn','expired') INDEX imz_consents_status_idx btree",status,"status IN ('granted','withdrawn','expired')",Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,granted_at,timestamptz,Sim,NULL,,Não,,granted at,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
consents,withdrawn_at,timestamptz,Sim,NULL,,Não,,withdrawn at,Não,Não,False,False,database/migrations/2026_09_24_001000_investmoz_identity.php,Reconciliado A.25/A.26 e A.31
documents,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,source_system,text,Não,'investmoz',,imz_documents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_documents_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,external_id,text,Sim,NULL,,imz_documents_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_documents_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,version_no,integer,Não,1,,Não,imz_documents_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,data_classification,text,Não,'internal',,Não,"imz_documents_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,updated_at,timestamptz,Não,now(),,Não,INDEX imz_documents_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,file_name,text,Não,Sem predefinição,,Não,,file name,Não,Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,media_type,text,Não,Sem predefinição,,Não,,media type,Não,Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,storage_key,text,Não,Sem predefinição,,imz_documents_storage_key_uq,INDEX imz_documents_storage_key_uq btree,Chave única no armazenamento,Não,Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,sha256,char(64),Não,Sem predefinição,,Não,imz_documents_check_04: sha256 ~ '^[0-9a-f]{64}$',SHA-256 hexadecimal; 64 caracteres minúsculos,Não,Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
documents,status,text,Não,Sem predefinição,,Não,"imz_documents_check_03: status IN ('active','quarantined','deleted') INDEX imz_documents_status_idx btree",status,"status IN ('active','quarantined','deleted')",Não,False,False,database/migrations/2026_09_24_002000_investmoz_content.php,Reconciliado A.25/A.26 e A.31
geo_locations,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,source_system,text,Não,'investmoz',,imz_geo_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_geo_locations_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,external_id,text,Sim,NULL,,imz_geo_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_geo_locations_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,version_no,integer,Não,1,,Não,imz_geo_locations_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,data_classification,text,Não,'internal',,Não,"imz_geo_locations_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,updated_at,timestamptz,Não,now(),,Não,INDEX imz_geo_locations_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,name,text,Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,location_type,text,Não,Sem predefinição,,imz_geo_locations_location_type_code_uq (composta) WHERE deleted_at IS NULL,"imz_geo_locations_check_03: location_type IN ('country','province','district','municipality','site') INDEX imz_geo_locations_location_type_code_uq btree",location type,"location_type IN ('country','province','district','municipality','site')",Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,parent_id,uuid,Sim,NULL,FK -> geo_locations.id ON UPDATE CASCADE ON DELETE RESTRICT,Não,INDEX imz_geo_locations_parent_id_idx btree,parent id,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_locations,code,text,Não,Sem predefinição,,imz_geo_locations_location_type_code_uq (composta) WHERE deleted_at IS NULL,INDEX imz_geo_locations_location_type_code_uq btree,code,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,source_system,text,Não,'investmoz',,imz_geo_geometries_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_geo_geometries_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,external_id,text,Sim,NULL,,imz_geo_geometries_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_geo_geometries_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,version_no,integer,Não,1,,Não,imz_geo_geometries_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,data_classification,text,Não,'internal',,Não,"imz_geo_geometries_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,updated_at,timestamptz,Não,now(),,Não,INDEX imz_geo_geometries_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,geo_location_id,uuid,Não,Sem predefinição,FK -> geo_locations.id ON UPDATE CASCADE ON DELETE CASCADE,imz_geo_geometries_geo_location_id_geometry_type_uq (composta) WHERE deleted_at IS NULL,INDEX imz_geo_geometries_geo_location_id_idx btree; INDEX imz_geo_geometries_geo_location_id_geometry_type_uq btree,geo location id,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,geometry_type,text,Não,Sem predefinição,,imz_geo_geometries_geo_location_id_geometry_type_uq (composta) WHERE deleted_at IS NULL,"imz_geo_geometries_check_03: geometry_type IN ('point','line','polygon','multipolygon'); imz_geo_geometries_check_08: (geometry_type = 'point' AND GeometryType(geom) = 'POINT') OR (geometry_type = 'line' AND GeometryType(geom) = 'LINESTRING') OR (geometry_type = 'polygon' AND GeometryType(geom) = 'POLYGON') OR (geometry_type = 'multipolygon' AND GeometryType(geom) = 'MULTIPOLYGON') INDEX imz_geo_geometries_geo_location_id_geometry_type_uq btree",Tipo declarado coerente com GeometryType(geom),"geometry_type IN ('point','line','polygon','multipolygon')",Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,geom,"geometry(Geometry,4326)",Não,Sem predefinição,,Não,imz_geo_geometries_check_04: ST_SRID(geom) = 4326; imz_geo_geometries_check_05: ST_NDims(geom) = 2; imz_geo_geometries_check_06: NOT ST_IsEmpty(geom); imz_geo_geometries_check_07: ST_IsValid(geom); imz_geo_geometries_check_08: (geometry_type = 'point' AND GeometryType(geom) = 'POINT') OR (geometry_type = 'line' AND GeometryType(geom) = 'LINESTRING') OR (geometry_type = 'polygon' AND GeometryType(geom) = 'POLYGON') OR (geometry_type = 'multipolygon' AND GeometryType(geom) = 'MULTIPOLYGON'); imz_geo_geometries_check_09: ST_XMin(Box3D(geom)) >= -180 AND ST_XMax(Box3D(geom)) <= 180 AND ST_YMin(Box3D(geom)) >= -90 AND ST_YMax(Box3D(geom)) <= 90 INDEX imz_geo_geometries_geom_idx gist,"Geometria 2D WGS84 SRID 4326, válida e não vazia",Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
geo_geometries,properties,jsonb,Não,'{}'::jsonb,,Não,INDEX imz_geo_geometries_properties_idx gin,Propriedades geográficas; schema aplicacional pendente,Não,Não,False,False,database/migrations/2026_09_24_003000_investmoz_geography.php,Reconciliado A.25/A.26 e A.31
projects,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,source_system,text,Não,'investmoz',,imz_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_projects_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,external_id,text,Sim,NULL,,imz_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_projects_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,version_no,integer,Não,1,,Não,imz_projects_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,data_classification,text,Não,'internal',,Não,"imz_projects_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,updated_at,timestamptz,Não,now(),,Não,INDEX imz_projects_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,code,text,Não,Sem predefinição,,imz_projects_code_uq WHERE deleted_at IS NULL,INDEX imz_projects_code_uq btree,code,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,name,text,Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,status,text,Não,Sem predefinição,,Não,"imz_projects_check_03: status IN ('draft','planned','active','suspended','completed','cancelled') INDEX imz_projects_status_idx btree",status,"status IN ('draft','planned','active','suspended','completed','cancelled')",Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,description,text,Sim,NULL,,Não,,description,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,budget_amount,"numeric(20,2)",Sim,NULL,,Não,imz_projects_check_04: budget_amount IS NULL OR budget_amount >= 0; imz_projects_check_06: (budget_amount IS NULL) = (budget_currency IS NULL),Orçamento exacto não negativo,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,budget_currency,char(3),Sim,NULL,,Não,imz_projects_check_06: (budget_amount IS NULL) = (budget_currency IS NULL); imz_projects_check_07: budget_currency IS NULL OR budget_currency ~ '^[A-Z]{3}$',Código monetário do orçamento; lista ISO autorizada pendente,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,start_date,date,Sim,NULL,,Não,imz_projects_check_05: end_date IS NULL OR start_date IS NULL OR end_date >= start_date,start date,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,end_date,date,Sim,NULL,,Não,imz_projects_check_05: end_date IS NULL OR start_date IS NULL OR end_date >= start_date,end date,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
projects,metadata,jsonb,Não,'{}'::jsonb,,Não,INDEX imz_projects_metadata_idx gin,Metadados flexíveis; schema aplicacional pendente,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,source_system,text,Não,'investmoz',,imz_project_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_project_locations_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,external_id,text,Sim,NULL,,imz_project_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_project_locations_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,version_no,integer,Não,1,,Não,imz_project_locations_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,data_classification,text,Não,'internal',,Não,"imz_project_locations_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,updated_at,timestamptz,Não,now(),,Não,INDEX imz_project_locations_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,project_id,uuid,Não,Sem predefinição,FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE,imz_project_locations_project_id_geo_location_id_role_uq (composta) WHERE deleted_at IS NULL,INDEX imz_project_locations_project_id_idx btree; INDEX imz_project_locations_project_id_geo_location_id_role_uq btree,project id,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,geo_location_id,uuid,Não,Sem predefinição,FK -> geo_locations.id ON UPDATE CASCADE ON DELETE RESTRICT,imz_project_locations_project_id_geo_location_id_role_uq (composta) WHERE deleted_at IS NULL,INDEX imz_project_locations_geo_location_id_idx btree; INDEX imz_project_locations_project_id_geo_location_id_role_uq btree,geo location id,Não,Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
project_locations,role,text,Não,Sem predefinição,,imz_project_locations_project_id_geo_location_id_role_uq (composta) WHERE deleted_at IS NULL,"imz_project_locations_check_03: role IN ('primary','secondary','impact') INDEX imz_project_locations_project_id_geo_location_id_role_uq btree",role,"role IN ('primary','secondary','impact')",Não,False,False,database/migrations/2026_09_24_004000_investmoz_projects.php,Reconciliado A.25/A.26 e A.31
economic_clusters,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,source_system,text,Não,'investmoz',,imz_economic_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_economic_clusters_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,external_id,text,Sim,NULL,,imz_economic_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_economic_clusters_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,version_no,integer,Não,1,,Não,imz_economic_clusters_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,data_classification,text,Não,'internal',,Não,"imz_economic_clusters_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,updated_at,timestamptz,Não,now(),,Não,INDEX imz_economic_clusters_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,code,text,Não,Sem predefinição,,imz_economic_clusters_code_uq WHERE deleted_at IS NULL,INDEX imz_economic_clusters_code_uq btree,code,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,name,text,Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,sector,text,Não,Sem predefinição,,Não,,sector,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,status,text,Não,Sem predefinição,,Não,"imz_economic_clusters_check_03: status IN ('planned','active','inactive') INDEX imz_economic_clusters_status_idx btree",status,"status IN ('planned','active','inactive')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
economic_clusters,metadata,jsonb,Não,'{}'::jsonb,,Não,,Metadados flexíveis; schema aplicacional pendente,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,source_system,text,Não,'investmoz',,imz_value_chains_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_value_chains_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,external_id,text,Sim,NULL,,imz_value_chains_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_value_chains_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,version_no,integer,Não,1,,Não,imz_value_chains_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,data_classification,text,Não,'internal',,Não,"imz_value_chains_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,updated_at,timestamptz,Não,now(),,Não,INDEX imz_value_chains_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,cluster_id,uuid,Não,Sem predefinição,FK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADE,imz_value_chains_cluster_id_code_uq (composta) WHERE deleted_at IS NULL,INDEX imz_value_chains_cluster_id_idx btree; INDEX imz_value_chains_cluster_id_code_uq btree,cluster id,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,code,text,Não,Sem predefinição,,imz_value_chains_cluster_id_code_uq (composta) WHERE deleted_at IS NULL,INDEX imz_value_chains_cluster_id_code_uq btree,code,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,name,text,Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chains,stage,text,Não,Sem predefinição,,Não,"imz_value_chains_check_03: stage IN ('input','production','processing','logistics','market')",stage,"stage IN ('input','production','processing','logistics','market')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,source_system,text,Não,'investmoz',,imz_value_chain_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_value_chain_links_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,external_id,text,Sim,NULL,,imz_value_chain_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_value_chain_links_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,version_no,integer,Não,1,,Não,imz_value_chain_links_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,data_classification,text,Não,'internal',,Não,"imz_value_chain_links_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,updated_at,timestamptz,Não,now(),,Não,INDEX imz_value_chain_links_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,from_value_chain_id,uuid,Não,Sem predefinição,FK -> value_chains.id ON UPDATE CASCADE ON DELETE CASCADE,imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c (composta) WHERE deleted_at IS NULL,imz_value_chain_links_check_04: from_value_chain_id <> to_value_chain_id INDEX imz_value_chain_links_from_value_chain_id_idx btree; INDEX imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c btree,from value chain id,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,to_value_chain_id,uuid,Não,Sem predefinição,FK -> value_chains.id ON UPDATE CASCADE ON DELETE CASCADE,imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c (composta) WHERE deleted_at IS NULL,imz_value_chain_links_check_04: from_value_chain_id <> to_value_chain_id INDEX imz_value_chain_links_to_value_chain_id_idx btree; INDEX imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c btree,to value chain id,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
value_chain_links,link_type,text,Não,Sem predefinição,,imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c (composta) WHERE deleted_at IS NULL,"imz_value_chain_links_check_03: link_type IN ('supplies','processes','distributes','supports') INDEX imz_value_chain_links_from_value_chain_id_to_value_c_f6a1a6162c btree",link type,"link_type IN ('supplies','processes','distributes','supports')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,source_system,text,Não,'investmoz',,imz_cluster_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_cluster_projects_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,external_id,text,Sim,NULL,,imz_cluster_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_cluster_projects_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,version_no,integer,Não,1,,Não,imz_cluster_projects_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,data_classification,text,Não,'internal',,Não,"imz_cluster_projects_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,updated_at,timestamptz,Não,now(),,Não,INDEX imz_cluster_projects_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,cluster_id,uuid,Não,Sem predefinição,FK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADE,imz_cluster_projects_cluster_id_project_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_cluster_projects_cluster_id_idx btree; INDEX imz_cluster_projects_cluster_id_project_id_uq btree,cluster id,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,project_id,uuid,Não,Sem predefinição,FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE,imz_cluster_projects_cluster_id_project_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_cluster_projects_project_id_idx btree; INDEX imz_cluster_projects_cluster_id_project_id_uq btree,project id,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
cluster_projects,role,text,Não,Sem predefinição,,Não,"imz_cluster_projects_check_03: role IN ('anchor','complementary','supporting')",role,"role IN ('anchor','complementary','supporting')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,source_system,text,Não,'investmoz',,imz_anchor_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_anchor_project_links_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,external_id,text,Sim,NULL,,imz_anchor_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_anchor_project_links_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,version_no,integer,Não,1,,Não,imz_anchor_project_links_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,data_classification,text,Não,'internal',,Não,"imz_anchor_project_links_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,updated_at,timestamptz,Não,now(),,Não,INDEX imz_anchor_project_links_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,anchor_project_id,uuid,Não,Sem predefinição,FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE,imz_anchor_project_links_anchor_project_id_cluster_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_anchor_project_links_anchor_project_id_idx btree; INDEX imz_anchor_project_links_anchor_project_id_cluster_id_uq btree,anchor project id,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,cluster_id,uuid,Não,Sem predefinição,FK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADE,imz_anchor_project_links_anchor_project_id_cluster_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_anchor_project_links_cluster_id_idx btree; INDEX imz_anchor_project_links_anchor_project_id_cluster_id_uq btree,cluster id,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
anchor_project_links,rationale,text,Não,Sem predefinição,,Não,,rationale,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,source_system,text,Não,'investmoz',,imz_complementary_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_complementary_project_links_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,external_id,text,Sim,NULL,,imz_complementary_project_links_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_complementary_project_links_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,version_no,integer,Não,1,,Não,imz_complementary_project_links_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,data_classification,text,Não,'internal',,Não,"imz_complementary_project_links_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,updated_at,timestamptz,Não,now(),,Não,INDEX imz_complementary_project_links_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,anchor_project_id,uuid,Não,Sem predefinição,FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE,imz_complementary_project_links_anchor_project_id_co_90eddcd25a (composta) WHERE deleted_at IS NULL,imz_complementary_project_links_check_04: anchor_project_id<>complementary_project_id INDEX imz_complementary_project_links_anchor_project_id_idx btree; INDEX imz_complementary_project_links_anchor_project_id_co_90eddcd25a btree,anchor project id,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,complementary_project_id,uuid,Não,Sem predefinição,FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE,imz_complementary_project_links_anchor_project_id_co_90eddcd25a (composta) WHERE deleted_at IS NULL,imz_complementary_project_links_check_04: anchor_project_id<>complementary_project_id INDEX imz_complementary_project_links_complementary_project_id_idx btree; INDEX imz_complementary_project_links_anchor_project_id_co_90eddcd25a btree,complementary project id,Não,Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
complementary_project_links,relation_type,text,Não,Sem predefinição,,imz_complementary_project_links_anchor_project_id_co_90eddcd25a (composta) WHERE deleted_at IS NULL,"imz_complementary_project_links_check_03: relation_type IN ('dependency','enabler','supplier','market') INDEX imz_complementary_project_links_anchor_project_id_co_90eddcd25a btree",relation type,"relation_type IN ('dependency','enabler','supplier','market')",Não,False,False,database/migrations/2026_09_24_005000_investmoz_clusters.php,Reconciliado A.25/A.26 e A.31
development_corridors,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,source_system,text,Não,'investmoz',,imz_development_corridors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_development_corridors_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,external_id,text,Sim,NULL,,imz_development_corridors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_development_corridors_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,version_no,integer,Não,1,,Não,imz_development_corridors_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,data_classification,text,Não,'internal',,Não,"imz_development_corridors_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,updated_at,timestamptz,Não,now(),,Não,INDEX imz_development_corridors_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,code,text,Não,Sem predefinição,,imz_development_corridors_code_uq WHERE deleted_at IS NULL,INDEX imz_development_corridors_code_uq btree,code,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,name,text,Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,status,text,Não,Sem predefinição,,Não,"imz_development_corridors_check_03: status IN ('proposed','active','closed') INDEX imz_development_corridors_status_idx btree",status,"status IN ('proposed','active','closed')",Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
development_corridors,description,text,Sim,NULL,,Não,,description,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,source_system,text,Não,'investmoz',,imz_corridor_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_corridor_locations_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,external_id,text,Sim,NULL,,imz_corridor_locations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_corridor_locations_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,version_no,integer,Não,1,,Não,imz_corridor_locations_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,data_classification,text,Não,'internal',,Não,"imz_corridor_locations_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,updated_at,timestamptz,Não,now(),,Não,INDEX imz_corridor_locations_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,corridor_id,uuid,Não,Sem predefinição,FK -> development_corridors.id ON UPDATE CASCADE ON DELETE CASCADE,imz_corridor_locations_corridor_id_geo_location_id_uq (composta) WHERE deleted_at IS NULL; imz_corridor_locations_corridor_id_sequence_no_uq (composta) WHERE deleted_at IS NULL,INDEX imz_corridor_locations_corridor_id_idx btree; INDEX imz_corridor_locations_corridor_id_geo_location_id_uq btree; INDEX imz_corridor_locations_corridor_id_sequence_no_uq btree,corridor id,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,geo_location_id,uuid,Não,Sem predefinição,FK -> geo_locations.id ON UPDATE CASCADE ON DELETE RESTRICT,imz_corridor_locations_corridor_id_geo_location_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_corridor_locations_geo_location_id_idx btree; INDEX imz_corridor_locations_corridor_id_geo_location_id_uq btree,geo location id,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_locations,sequence_no,integer,Não,Sem predefinição,,imz_corridor_locations_corridor_id_sequence_no_uq (composta) WHERE deleted_at IS NULL,imz_corridor_locations_check_03: sequence_no>0 INDEX imz_corridor_locations_corridor_id_sequence_no_uq btree,sequence no,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,source_system,text,Não,'investmoz',,imz_corridor_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_corridor_projects_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,external_id,text,Sim,NULL,,imz_corridor_projects_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_corridor_projects_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,version_no,integer,Não,1,,Não,imz_corridor_projects_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,data_classification,text,Não,'internal',,Não,"imz_corridor_projects_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,updated_at,timestamptz,Não,now(),,Não,INDEX imz_corridor_projects_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,corridor_id,uuid,Não,Sem predefinição,FK -> development_corridors.id ON UPDATE CASCADE ON DELETE CASCADE,imz_corridor_projects_corridor_id_project_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_corridor_projects_corridor_id_idx btree; INDEX imz_corridor_projects_corridor_id_project_id_uq btree,corridor id,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_projects,project_id,uuid,Não,Sem predefinição,FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE,imz_corridor_projects_corridor_id_project_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_corridor_projects_project_id_idx btree; INDEX imz_corridor_projects_corridor_id_project_id_uq btree,project id,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,source_system,text,Não,'investmoz',,imz_corridor_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_corridor_clusters_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,external_id,text,Sim,NULL,,imz_corridor_clusters_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_corridor_clusters_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,version_no,integer,Não,1,,Não,imz_corridor_clusters_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,data_classification,text,Não,'internal',,Não,"imz_corridor_clusters_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,updated_at,timestamptz,Não,now(),,Não,INDEX imz_corridor_clusters_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,corridor_id,uuid,Não,Sem predefinição,FK -> development_corridors.id ON UPDATE CASCADE ON DELETE CASCADE,imz_corridor_clusters_corridor_id_cluster_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_corridor_clusters_corridor_id_idx btree; INDEX imz_corridor_clusters_corridor_id_cluster_id_uq btree,corridor id,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
corridor_clusters,cluster_id,uuid,Não,Sem predefinição,FK -> economic_clusters.id ON UPDATE CASCADE ON DELETE CASCADE,imz_corridor_clusters_corridor_id_cluster_id_uq (composta) WHERE deleted_at IS NULL,INDEX imz_corridor_clusters_cluster_id_idx btree; INDEX imz_corridor_clusters_corridor_id_cluster_id_uq btree,cluster id,Não,Não,False,False,database/migrations/2026_09_24_006000_investmoz_corridors.php,Reconciliado A.25/A.26 e A.31
investors,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,source_system,text,Não,'investmoz',,imz_investors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_investors_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,external_id,text,Sim,NULL,,imz_investors_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_investors_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,version_no,integer,Não,1,,Não,imz_investors_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,data_classification,text,Não,'internal',,Não,"imz_investors_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,updated_at,timestamptz,Não,now(),,Não,INDEX imz_investors_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,organization_id,uuid,Sim,NULL,FK -> organizations.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_investors_organization_id_idx btree,organization id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,legal_name,text,Não,Sem predefinição,,Não,,legal name,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,investor_type,text,Não,Sem predefinição,,Não,"imz_investors_check_03: investor_type IN ('domestic','foreign','institutional','individual')",investor type,"investor_type IN ('domestic','foreign','institutional','individual')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investors,status,text,Não,Sem predefinição,,Não,"imz_investors_check_04: status IN ('prospect','active','inactive') INDEX imz_investors_status_idx btree",status,"status IN ('prospect','active','inactive')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,source_system,text,Não,'investmoz',,imz_contacts_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_contacts_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,external_id,text,Sim,NULL,,imz_contacts_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_contacts_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,version_no,integer,Não,1,,Não,imz_contacts_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,data_classification,text,Não,'internal',,Não,"imz_contacts_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,updated_at,timestamptz,Não,now(),,Não,INDEX imz_contacts_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,full_name,text,Não,Sem predefinição,,Não,,full name,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,email,text,Sim,NULL,,Não,,email,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
contacts,phone,text,Sim,NULL,,Não,,phone,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investor_contacts,investor_id,uuid,Não,Sem predefinição,PK; FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADE,"PRIMARY KEY composta: investor_id, contact_id",INDEX imz_investor_contacts_investor_id_idx btree,investor id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investor_contacts,contact_id,uuid,Não,Sem predefinição,PK; FK -> contacts.id ON UPDATE CASCADE ON DELETE CASCADE,"PRIMARY KEY composta: investor_id, contact_id",INDEX imz_investor_contacts_contact_id_idx btree,contact id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investor_contacts,is_primary,boolean,Não,false,,Não,,Contacto principal deste investidor; limite quantitativo pendente,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investor_contacts,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investor_contacts,updated_at,timestamptz,Não,now(),,Não,INDEX imz_investor_contacts_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,source_system,text,Não,'investmoz',,imz_leads_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_leads_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,external_id,text,Sim,NULL,,imz_leads_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_leads_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,version_no,integer,Não,1,,Não,imz_leads_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,data_classification,text,Não,'internal',,Não,"imz_leads_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,updated_at,timestamptz,Não,now(),,Não,INDEX imz_leads_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,investor_id,uuid,Sim,NULL,FK -> investors.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_leads_investor_id_idx btree,investor id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,owner_user_id,bigint,Sim,NULL,FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_leads_owner_user_id_idx btree,owner user id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,title,text,Não,Sem predefinição,,Não,,title,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,status,text,Não,Sem predefinição,,Não,"imz_leads_check_03: status IN ('new','qualified','disqualified','converted') INDEX imz_leads_status_idx btree",status,"status IN ('new','qualified','disqualified','converted')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,estimated_amount,"numeric(20,2)",Sim,NULL,,Não,imz_leads_check_04: (estimated_amount IS NULL)=(currency IS NULL); imz_leads_check_05: estimated_amount IS NULL OR estimated_amount >= 0,Montante estimado exacto não negativo,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
leads,currency,char(3),Sim,NULL,,Não,imz_leads_check_04: (estimated_amount IS NULL)=(currency IS NULL); imz_leads_check_06: currency IS NULL OR currency ~ '^[A-Z]{3}$',Código monetário; três letras maiúsculas; lista ISO autorizada pendente,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,source_system,text,Não,'investmoz',,imz_crm_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_crm_opportunities_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,external_id,text,Sim,NULL,,imz_crm_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_crm_opportunities_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,version_no,integer,Não,1,,Não,imz_crm_opportunities_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,data_classification,text,Não,'internal',,Não,"imz_crm_opportunities_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,updated_at,timestamptz,Não,now(),,Não,INDEX imz_crm_opportunities_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,lead_id,uuid,Sim,NULL,FK -> leads.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_crm_opportunities_lead_id_idx btree,lead id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,project_id,uuid,Sim,NULL,FK -> projects.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_crm_opportunities_project_id_idx btree,project id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,owner_user_id,bigint,Sim,NULL,FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_crm_opportunities_owner_user_id_idx btree,owner user id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,stage,text,Não,Sem predefinição,,Não,"imz_crm_opportunities_check_03: stage IN ('discovery','assessment','negotiation','approved','lost')",stage,"stage IN ('discovery','assessment','negotiation','approved','lost')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,amount,"numeric(20,2)",Sim,NULL,,Não,imz_crm_opportunities_check_05: (amount IS NULL)=(currency IS NULL); imz_crm_opportunities_check_06: amount IS NULL OR amount >= 0,Montante monetário exacto não negativo,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,currency,char(3),Sim,NULL,,Não,imz_crm_opportunities_check_05: (amount IS NULL)=(currency IS NULL); imz_crm_opportunities_check_07: currency IS NULL OR currency ~ '^[A-Z]{3}$',Código monetário; três letras maiúsculas; lista ISO autorizada pendente,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
crm_opportunities,probability,"numeric(5,2)",Sim,NULL,,Não,imz_crm_opportunities_check_04: probability BETWEEN 0 AND 100,probability,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,source_system,text,Não,'investmoz',,imz_activities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_activities_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,external_id,text,Sim,NULL,,imz_activities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_activities_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,version_no,integer,Não,1,,Não,imz_activities_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,data_classification,text,Não,'internal',,Não,"imz_activities_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,updated_at,timestamptz,Não,now(),,Não,INDEX imz_activities_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,investor_id,uuid,Sim,NULL,FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADE,Não,INDEX imz_activities_investor_id_idx btree,investor id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,opportunity_id,uuid,Sim,NULL,FK -> crm_opportunities.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_activities_opportunity_id_idx btree,opportunity id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,actor_user_id,bigint,Sim,NULL,FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_activities_actor_user_id_idx btree,actor user id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,activity_type,text,Não,Sem predefinição,,Não,"imz_activities_check_03: activity_type IN ('call','meeting','email','note')",activity type,"activity_type IN ('call','meeting','email','note')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,occurred_at,timestamptz,Não,Sem predefinição,,Não,,occurred at,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
activities,summary,text,Não,Sem predefinição,,Não,,summary,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,source_system,text,Não,'investmoz',,imz_tasks_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_tasks_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,external_id,text,Sim,NULL,,imz_tasks_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_tasks_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,version_no,integer,Não,1,,Não,imz_tasks_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,data_classification,text,Não,'internal',,Não,"imz_tasks_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,updated_at,timestamptz,Não,now(),,Não,INDEX imz_tasks_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,assignee_user_id,bigint,Sim,NULL,FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_tasks_assignee_user_id_idx btree,assignee user id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,opportunity_id,uuid,Sim,NULL,FK -> crm_opportunities.id ON UPDATE CASCADE ON DELETE CASCADE,Não,INDEX imz_tasks_opportunity_id_idx btree,opportunity id,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,title,text,Não,Sem predefinição,,Não,,title,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,status,text,Não,Sem predefinição,,Não,"imz_tasks_check_03: status IN ('open','in_progress','done','cancelled') INDEX imz_tasks_status_idx btree",status,"status IN ('open','in_progress','done','cancelled')",Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
tasks,due_at,timestamptz,Sim,NULL,,Não,,due at,Não,Não,False,False,database/migrations/2026_09_24_007000_investmoz_crm.php,Reconciliado A.25/A.26 e A.31
investor_journeys,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,source_system,text,Não,'investmoz',,imz_investor_journeys_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_investor_journeys_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,external_id,text,Sim,NULL,,imz_investor_journeys_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_investor_journeys_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,version_no,integer,Não,1,,Não,imz_investor_journeys_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,data_classification,text,Não,'internal',,Não,"imz_investor_journeys_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,updated_at,timestamptz,Não,now(),,Não,INDEX imz_investor_journeys_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,investor_id,uuid,Não,Sem predefinição,FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADE,Não,INDEX imz_investor_journeys_investor_id_idx btree,investor id,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,opportunity_id,uuid,Sim,NULL,FK -> crm_opportunities.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_investor_journeys_opportunity_id_idx btree,opportunity id,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,status,text,Não,Sem predefinição,,Não,"imz_investor_journeys_check_03: status IN ('started','active','completed','cancelled') INDEX imz_investor_journeys_status_idx btree",status,"status IN ('started','active','completed','cancelled')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
investor_journeys,started_at,timestamptz,Não,now(),,Não,,started at,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,source_system,text,Não,'investmoz',,imz_journey_steps_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_journey_steps_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,external_id,text,Sim,NULL,,imz_journey_steps_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_journey_steps_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,version_no,integer,Não,1,,Não,imz_journey_steps_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,data_classification,text,Não,'internal',,Não,"imz_journey_steps_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,updated_at,timestamptz,Não,now(),,Não,INDEX imz_journey_steps_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,journey_id,uuid,Não,Sem predefinição,FK -> investor_journeys.id ON UPDATE CASCADE ON DELETE CASCADE,imz_journey_steps_journey_id_sequence_no_uq (composta) WHERE deleted_at IS NULL; imz_journey_steps_journey_id_step_code_uq (composta) WHERE deleted_at IS NULL,INDEX imz_journey_steps_journey_id_idx btree; INDEX imz_journey_steps_journey_id_sequence_no_uq btree; INDEX imz_journey_steps_journey_id_step_code_uq btree,journey id,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,step_code,text,Não,Sem predefinição,,imz_journey_steps_journey_id_step_code_uq (composta) WHERE deleted_at IS NULL,INDEX imz_journey_steps_journey_id_step_code_uq btree,step code,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,sequence_no,integer,Não,Sem predefinição,,imz_journey_steps_journey_id_sequence_no_uq (composta) WHERE deleted_at IS NULL,imz_journey_steps_check_03: sequence_no>0 INDEX imz_journey_steps_journey_id_sequence_no_uq btree,sequence no,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
journey_steps,status,text,Não,Sem predefinição,,Não,"imz_journey_steps_check_04: status IN ('pending','active','completed','blocked') INDEX imz_journey_steps_status_idx btree",status,"status IN ('pending','active','completed','blocked')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,source_system,text,Não,'investmoz',,imz_submissions_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_submissions_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,external_id,text,Sim,NULL,,imz_submissions_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_submissions_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,version_no,integer,Não,1,,Não,imz_submissions_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,data_classification,text,Não,'internal',,Não,"imz_submissions_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,updated_at,timestamptz,Não,now(),,Não,INDEX imz_submissions_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,journey_step_id,uuid,Não,Sem predefinição,FK -> journey_steps.id ON UPDATE CASCADE ON DELETE CASCADE,Não,INDEX imz_submissions_journey_step_id_idx btree,journey step id,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,submitted_by,bigint,Sim,NULL,FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_submissions_submitted_by_idx btree,submitted by,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,status,text,Não,Sem predefinição,,Não,"imz_submissions_check_03: status IN ('draft','submitted','accepted','rejected') INDEX imz_submissions_status_idx btree",status,"status IN ('draft','submitted','accepted','rejected')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,payload,jsonb,Não,'{}'::jsonb,,Não,INDEX imz_submissions_payload_idx gin,Conteúdo da submissão/evento; contrato por tipo pendente,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
submissions,submitted_at,timestamptz,Sim,NULL,,Não,,submitted at,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,source_system,text,Não,'investmoz',,imz_aftercare_plans_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_aftercare_plans_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,external_id,text,Sim,NULL,,imz_aftercare_plans_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_aftercare_plans_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,version_no,integer,Não,1,,Não,imz_aftercare_plans_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,data_classification,text,Não,'internal',,Não,"imz_aftercare_plans_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,updated_at,timestamptz,Não,now(),,Não,INDEX imz_aftercare_plans_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,investor_id,uuid,Não,Sem predefinição,FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADE,Não,INDEX imz_aftercare_plans_investor_id_idx btree,investor id,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,project_id,uuid,Sim,NULL,FK -> projects.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_aftercare_plans_project_id_idx btree,project id,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,owner_user_id,bigint,Sim,NULL,FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_aftercare_plans_owner_user_id_idx btree,owner user id,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,status,text,Não,Sem predefinição,,Não,"imz_aftercare_plans_check_03: status IN ('draft','active','closed') INDEX imz_aftercare_plans_status_idx btree",status,"status IN ('draft','active','closed')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
aftercare_plans,review_date,date,Sim,NULL,,Não,,review date,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,source_system,text,Não,'investmoz',,imz_constraints_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_constraints_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,external_id,text,Sim,NULL,,imz_constraints_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_constraints_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,version_no,integer,Não,1,,Não,imz_constraints_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,data_classification,text,Não,'internal',,Não,"imz_constraints_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,updated_at,timestamptz,Não,now(),,Não,INDEX imz_constraints_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,aftercare_plan_id,uuid,Não,Sem predefinição,FK -> aftercare_plans.id ON UPDATE CASCADE ON DELETE CASCADE,Não,INDEX imz_constraints_aftercare_plan_id_idx btree,aftercare plan id,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,category,text,Não,Sem predefinição,,Não,,category,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,description,text,Não,Sem predefinição,,Não,,description,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,severity,text,Não,Sem predefinição,,Não,"imz_constraints_check_03: severity IN ('low','medium','high','critical')",severity,"severity IN ('low','medium','high','critical')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
constraints,status,text,Não,Sem predefinição,,Não,"imz_constraints_check_04: status IN ('open','mitigating','resolved') INDEX imz_constraints_status_idx btree",status,"status IN ('open','mitigating','resolved')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,source_system,text,Não,'investmoz',,imz_escalations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_escalations_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,external_id,text,Sim,NULL,,imz_escalations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_escalations_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,version_no,integer,Não,1,,Não,imz_escalations_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,data_classification,text,Não,'internal',,Não,"imz_escalations_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,updated_at,timestamptz,Não,now(),,Não,INDEX imz_escalations_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,constraint_id,uuid,Não,Sem predefinição,FK -> constraints.id ON UPDATE CASCADE ON DELETE CASCADE,Não,INDEX imz_escalations_constraint_id_idx btree,constraint id,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,escalated_by,bigint,Sim,NULL,FK -> users.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_escalations_escalated_by_idx btree,escalated by,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,level,text,Não,Sem predefinição,,Não,"imz_escalations_check_03: level IN ('operational','management','executive')",level,"level IN ('operational','management','executive')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,status,text,Não,Sem predefinição,,Não,"imz_escalations_check_04: status IN ('open','acknowledged','closed') INDEX imz_escalations_status_idx btree",status,"status IN ('open','acknowledged','closed')",Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
escalations,escalated_at,timestamptz,Não,now(),,Não,,escalated at,Não,Não,False,False,database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php,Reconciliado A.25/A.26 e A.31
skills,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
skills,source_system,text,Não,'investmoz',,imz_skills_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_skills_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
skills,external_id,text,Sim,NULL,,imz_skills_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_skills_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
skills,version_no,integer,Não,1,,Não,imz_skills_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
skills,data_classification,text,Não,'internal',,Não,"imz_skills_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
skills,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
skills,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
skills,updated_at,timestamptz,Não,now(),,Não,INDEX imz_skills_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
skills,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
skills,code,text,Não,Sem predefinição,,imz_skills_code_uq WHERE deleted_at IS NULL,INDEX imz_skills_code_uq btree,code,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
skills,name,text,Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,source_system,text,Não,'investmoz',,imz_occupations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_occupations_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,external_id,text,Sim,NULL,,imz_occupations_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_occupations_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,version_no,integer,Não,1,,Não,imz_occupations_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,data_classification,text,Não,'internal',,Não,"imz_occupations_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,updated_at,timestamptz,Não,now(),,Não,INDEX imz_occupations_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,code,text,Não,Sem predefinição,,imz_occupations_code_uq WHERE deleted_at IS NULL,INDEX imz_occupations_code_uq btree,code,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
occupations,name,text,Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,source_system,text,Não,'investmoz',,imz_training_needs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_training_needs_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,external_id,text,Sim,NULL,,imz_training_needs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_training_needs_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,version_no,integer,Não,1,,Não,imz_training_needs_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,data_classification,text,Não,'internal',,Não,"imz_training_needs_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,updated_at,timestamptz,Não,now(),,Não,INDEX imz_training_needs_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,project_id,uuid,Sim,NULL,FK -> projects.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_training_needs_project_id_idx btree,project id,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,occupation_id,uuid,Sim,NULL,FK -> occupations.id ON UPDATE CASCADE ON DELETE RESTRICT,Não,INDEX imz_training_needs_occupation_id_idx btree,occupation id,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,skill_id,uuid,Sim,NULL,FK -> skills.id ON UPDATE CASCADE ON DELETE RESTRICT,Não,INDEX imz_training_needs_skill_id_idx btree,skill id,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,quantity,integer,Não,Sem predefinição,,Não,imz_training_needs_check_03: quantity>0,quantity,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_needs,priority,text,Não,Sem predefinição,,Não,"imz_training_needs_check_04: priority IN ('Must','Should','Could')",priority,"priority IN ('Must','Should','Could')",Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,source_system,text,Não,'investmoz',,imz_training_providers_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_training_providers_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,external_id,text,Sim,NULL,,imz_training_providers_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_training_providers_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,version_no,integer,Não,1,,Não,imz_training_providers_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,data_classification,text,Não,'internal',,Não,"imz_training_providers_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,updated_at,timestamptz,Não,now(),,Não,INDEX imz_training_providers_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,organization_id,uuid,Sim,NULL,FK -> organizations.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_training_providers_organization_id_idx btree,organization id,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,name,text,Não,Sem predefinição,,Não,,name,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
training_providers,status,text,Não,Sem predefinição,,Não,"imz_training_providers_check_03: status IN ('candidate','approved','inactive') INDEX imz_training_providers_status_idx btree",status,"status IN ('candidate','approved','inactive')",Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,source_system,text,Não,'investmoz',,imz_courses_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_courses_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,external_id,text,Sim,NULL,,imz_courses_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_courses_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,version_no,integer,Não,1,,Não,imz_courses_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,data_classification,text,Não,'internal',,Não,"imz_courses_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,updated_at,timestamptz,Não,now(),,Não,INDEX imz_courses_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,provider_id,uuid,Não,Sem predefinição,FK -> training_providers.id ON UPDATE CASCADE ON DELETE CASCADE,imz_courses_provider_id_code_uq (composta) WHERE deleted_at IS NULL,INDEX imz_courses_provider_id_idx btree; INDEX imz_courses_provider_id_code_uq btree,provider id,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,code,text,Não,Sem predefinição,,imz_courses_provider_id_code_uq (composta) WHERE deleted_at IS NULL,INDEX imz_courses_provider_id_code_uq btree,code,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,title,text,Não,Sem predefinição,,Não,,title,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
courses,status,text,Não,Sem predefinição,,Não,"imz_courses_check_03: status IN ('draft','published','retired') INDEX imz_courses_status_idx btree",status,"status IN ('draft','published','retired')",Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,source_system,text,Não,'investmoz',,imz_education_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_education_opportunities_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,external_id,text,Sim,NULL,,imz_education_opportunities_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_education_opportunities_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,version_no,integer,Não,1,,Não,imz_education_opportunities_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,data_classification,text,Não,'internal',,Não,"imz_education_opportunities_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,updated_at,timestamptz,Não,now(),,Não,INDEX imz_education_opportunities_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,course_id,uuid,Não,Sem predefinição,FK -> courses.id ON UPDATE CASCADE ON DELETE CASCADE,Não,INDEX imz_education_opportunities_course_id_idx btree,course id,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,geo_location_id,uuid,Sim,NULL,FK -> geo_locations.id ON UPDATE CASCADE ON DELETE SET NULL,Não,INDEX imz_education_opportunities_geo_location_id_idx btree,geo location id,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,start_date,date,Não,Sem predefinição,,Não,imz_education_opportunities_check_05: end_date IS NULL OR end_date>=start_date,start date,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,end_date,date,Sim,NULL,,Não,imz_education_opportunities_check_05: end_date IS NULL OR end_date>=start_date,end date,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,capacity,integer,Sim,NULL,,Não,imz_education_opportunities_check_03: capacity>=0,capacity,Não,Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
education_opportunities,status,text,Não,Sem predefinição,,Não,"imz_education_opportunities_check_04: status IN ('planned','open','closed','cancelled') INDEX imz_education_opportunities_status_idx btree",status,"status IN ('planned','open','closed','cancelled')",Não,False,False,database/migrations/2026_09_24_009000_investmoz_education.php,Reconciliado A.25/A.26 e A.31
project_documents,project_id,uuid,Não,Sem predefinição,PK; FK -> projects.id ON UPDATE CASCADE ON DELETE CASCADE,"PRIMARY KEY composta: project_id, document_id",INDEX imz_project_documents_project_id_idx btree,project id,Não,Não,False,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
project_documents,document_id,uuid,Não,Sem predefinição,PK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICT,"PRIMARY KEY composta: project_id, document_id",INDEX imz_project_documents_document_id_idx btree,document id,Não,Não,False,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
project_documents,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
investor_documents,investor_id,uuid,Não,Sem predefinição,PK; FK -> investors.id ON UPDATE CASCADE ON DELETE CASCADE,"PRIMARY KEY composta: investor_id, document_id",INDEX imz_investor_documents_investor_id_idx btree,investor id,Não,Não,False,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
investor_documents,document_id,uuid,Não,Sem predefinição,PK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICT,"PRIMARY KEY composta: investor_id, document_id",INDEX imz_investor_documents_document_id_idx btree,document id,Não,Não,False,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
investor_documents,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
journey_documents,journey_id,uuid,Não,Sem predefinição,PK; FK -> investor_journeys.id ON UPDATE CASCADE ON DELETE CASCADE,"PRIMARY KEY composta: journey_id, document_id",INDEX imz_journey_documents_journey_id_idx btree,journey id,Não,Não,False,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
journey_documents,document_id,uuid,Não,Sem predefinição,PK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICT,"PRIMARY KEY composta: journey_id, document_id",INDEX imz_journey_documents_document_id_idx btree,document id,Não,Não,False,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
journey_documents,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
aftercare_documents,aftercare_plan_id,uuid,Não,Sem predefinição,PK; FK -> aftercare_plans.id ON UPDATE CASCADE ON DELETE CASCADE,"PRIMARY KEY composta: aftercare_plan_id, document_id",INDEX imz_aftercare_documents_aftercare_plan_id_idx btree,aftercare plan id,Não,Não,False,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
aftercare_documents,document_id,uuid,Não,Sem predefinição,PK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICT,"PRIMARY KEY composta: aftercare_plan_id, document_id",INDEX imz_aftercare_documents_document_id_idx btree,document id,Não,Não,False,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
aftercare_documents,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
education_documents,education_opportunity_id,uuid,Não,Sem predefinição,PK; FK -> education_opportunities.id ON UPDATE CASCADE ON DELETE CASCADE,"PRIMARY KEY composta: education_opportunity_id, document_id",INDEX imz_education_documents_education_opportunity_id_idx btree,education opportunity id,Não,Não,False,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
education_documents,document_id,uuid,Não,Sem predefinição,PK; FK -> documents.id ON UPDATE CASCADE ON DELETE RESTRICT,"PRIMARY KEY composta: education_opportunity_id, document_id",INDEX imz_education_documents_document_id_idx btree,document id,Não,Não,False,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
education_documents,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_009500_investmoz_document_links.php,Reconciliado A.25/A.26 e A.31
audit_events,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,source_system,text,Não,'investmoz',,imz_audit_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_audit_events_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,external_id,text,Sim,NULL,,imz_audit_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_audit_events_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,data_classification,text,Não,'internal',,Não,"imz_audit_events_check_01: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,actor_user_id,bigint,Sim,NULL,FK -> users.id ON UPDATE RESTRICT ON DELETE RESTRICT,Não,INDEX imz_audit_events_actor_user_id_idx btree,actor user id,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,entity_type,text,Não,Sem predefinição,,Não,,entity type,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,entity_id,uuid,Sim,NULL,,Não,,ID histórico UUID sem FK; a entidade pode já não existir,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,action,text,Não,Sem predefinição,,Não,,action,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,occurred_at,timestamptz,Não,now(),,Não,,occurred at,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,before_data,jsonb,Sim,NULL,,Não,,Representação anterior; aplicação deve remover segredos,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
audit_events,after_data,jsonb,Sim,NULL,,Não,INDEX imz_audit_events_after_data_idx gin,Representação posterior; aplicação deve remover segredos,Não,Não,False,False,database/migrations/2026_09_24_010000_investmoz_governance_ai.php,Reconciliado A.25/A.26 e A.31
outbox_events,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,source_system,text,Não,'investmoz',,imz_outbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_outbox_events_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,external_id,text,Sim,NULL,,imz_outbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_outbox_events_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,version_no,integer,Não,1,,Não,imz_outbox_events_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,data_classification,text,Não,'internal',,Não,"imz_outbox_events_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,updated_at,timestamptz,Não,now(),,Não,INDEX imz_outbox_events_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,aggregate_type,text,Não,Sem predefinição,,Não,,aggregate type,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,aggregate_id,uuid,Não,Sem predefinição,,Não,,UUID do agregado produtor; sem FK polimórfica,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,event_type,text,Não,Sem predefinição,,Não,,event type,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,payload,jsonb,Não,Sem predefinição,,Não,,Conteúdo da submissão/evento; contrato por tipo pendente,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,status,text,Não,Sem predefinição,,Não,"imz_outbox_events_check_03: status IN ('pending','published','failed') INDEX imz_outbox_events_status_idx btree; INDEX imz_outbox_events_status_available_at_idx btree",status,"status IN ('pending','published','failed')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,available_at,timestamptz,Não,now(),,Não,INDEX imz_outbox_events_status_available_at_idx btree,available at,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
outbox_events,published_at,timestamptz,Sim,NULL,,Não,,published at,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,source_system,text,Não,'investmoz',,imz_inbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_inbox_events_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,external_id,text,Sim,NULL,,imz_inbox_events_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_inbox_events_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,version_no,integer,Não,1,,Não,imz_inbox_events_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,data_classification,text,Não,'internal',,Não,"imz_inbox_events_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,updated_at,timestamptz,Não,now(),,Não,INDEX imz_inbox_events_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,message_id,text,Não,Sem predefinição,,imz_inbox_events_message_id_uq,INDEX imz_inbox_events_message_id_uq btree,message id,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,event_type,text,Não,Sem predefinição,,Não,,event type,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,payload,jsonb,Não,Sem predefinição,,Não,,Conteúdo da submissão/evento; contrato por tipo pendente,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,status,text,Não,Sem predefinição,,Não,"imz_inbox_events_check_03: status IN ('received','processed','failed') INDEX imz_inbox_events_status_idx btree",status,"status IN ('received','processed','failed')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,received_at,timestamptz,Não,now(),,Não,,received at,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
inbox_events,processed_at,timestamptz,Sim,NULL,,Não,,processed at,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,source_system,text,Não,'investmoz',,imz_sync_runs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_sync_runs_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,external_id,text,Sim,NULL,,imz_sync_runs_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_sync_runs_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,version_no,integer,Não,1,,Não,imz_sync_runs_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,data_classification,text,Não,'internal',,Não,"imz_sync_runs_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,updated_at,timestamptz,Não,now(),,Não,INDEX imz_sync_runs_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,integration_name,text,Não,Sem predefinição,,Não,,integration name,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,direction,text,Não,Sem predefinição,,Não,"imz_sync_runs_check_03: direction IN ('inbound','outbound')",direction,"direction IN ('inbound','outbound')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,status,text,Não,Sem predefinição,,Não,"imz_sync_runs_check_04: status IN ('running','succeeded','failed','cancelled') INDEX imz_sync_runs_status_idx btree",status,"status IN ('running','succeeded','failed','cancelled')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,started_at,timestamptz,Não,now(),,Não,,started at,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,ended_at,timestamptz,Sim,NULL,,Não,,ended at,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
sync_runs,totals,jsonb,Não,'{}'::jsonb,,Não,,totals,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,id,uuid,Não,gen_random_uuid(),PK,PRIMARY KEY,,Identificador primário da entidade,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,source_system,text,Não,'investmoz',,imz_reconciliation_issues_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_reconciliation_issues_source_system_external_id_uq btree,Sistema de origem; integra a chave estável de importação,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,external_id,text,Sim,NULL,,imz_reconciliation_issues_source_system_external_id_uq (composta) WHERE external_id IS NOT NULL,INDEX imz_reconciliation_issues_source_system_external_id_uq btree,Identificador na origem; NULL quando não fornecido,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,version_no,integer,Não,1,,Não,imz_reconciliation_issues_check_01: version_no > 0,Versão positiva; comparação compete ao importador,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,data_classification,text,Não,'internal',,Não,"imz_reconciliation_issues_check_02: data_classification IN ('public','internal','confidential','restricted')",Classificação de acesso; não substitui autorização,"data_classification IN ('public','internal','confidential','restricted')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,correlation_id,uuid,Sim,NULL,,Não,,Correlação entre operações; não é FK,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,created_at,timestamptz,Não,now(),,Não,,Instante de criação,Não,Não,True,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,updated_at,timestamptz,Não,now(),,Não,INDEX imz_reconciliation_issues_updated_at_idx btree,Instante da última actualização,Não,Não,True,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,deleted_at,timestamptz,Sim,NULL,,Não,,Eliminação lógica; NULL indica activo,Não,Não,False,True,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,sync_run_id,uuid,Não,Sem predefinição,FK -> sync_runs.id ON UPDATE CASCADE ON DELETE CASCADE,Não,INDEX imz_reconciliation_issues_sync_run_id_idx btree; INDEX imz_reconciliation_issues_sync_run_id_status_idx btree,sync run id,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,entity_type,text,Não,Sem predefinição,,Não,,entity type,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,external_id_ref,text,Sim,NULL,,Não,,external id ref,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,issue_type,text,Não,Sem predefinição,,Não,"imz_reconciliation_issues_check_03: issue_type IN ('missing','duplicate','orphan','checksum','geometry','value')",issue type,"issue_type IN ('missing','duplicate','orphan','checksum','geometry','value')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,severity,text,Não,Sem predefinição,,Não,"imz_reconciliation_issues_check_04: severity IN ('warning','error')",severity,"severity IN ('warning','error')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,status,text,Não,Sem predefinição,,Não,"imz_reconciliation_issues_check_05: status IN ('open','accepted','resolved') INDEX imz_reconciliation_issues_status_idx btree; INDEX imz_reconciliation_issues_sync_run_id_status_idx btree",status,"status IN ('open','accepted','resolved')",Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31
reconciliation_issues,details,jsonb,Não,'{}'::jsonb,,Não,,details,Não,Não,False,False,database/migrations/2026_09_24_011000_investmoz_integrations.php,Reconciliado A.25/A.26 e A.31