38 KiB
38 KiB
| 1 | Tabela | Nome | Tipo | Expressão | Migration |
|---|---|---|---|---|---|
| 2 | organizations | imz_organizations_pk | PRIMARY KEY | id | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 3 | organizations | imz_organizations_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 4 | organizations | imz_organizations_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 5 | organizations | imz_organizations_check_03 | CHECK | organization_type IN ('public','private','ngo','education') | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 6 | memberships | imz_memberships_user_id_fk | FOREIGN KEY | user_id -> users.id | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 7 | memberships | imz_memberships_organization_id_fk | FOREIGN KEY | organization_id -> organizations.id | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 8 | memberships | imz_memberships_pk | PRIMARY KEY | id | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 9 | memberships | imz_memberships_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 10 | memberships | imz_memberships_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 11 | memberships | imz_memberships_check_03 | CHECK | role IN ('admin','manager','officer','viewer') | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 12 | consents | imz_consents_user_id_fk | FOREIGN KEY | user_id -> users.id | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 13 | consents | imz_consents_pk | PRIMARY KEY | id | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 14 | consents | imz_consents_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 15 | consents | imz_consents_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 16 | consents | imz_consents_check_03 | CHECK | status IN ('granted','withdrawn','expired') | database/migrations/2026_09_24_001000_investmoz_identity.php |
| 17 | documents | imz_documents_pk | PRIMARY KEY | id | database/migrations/2026_09_24_002000_investmoz_content.php |
| 18 | documents | imz_documents_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_002000_investmoz_content.php |
| 19 | documents | imz_documents_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_002000_investmoz_content.php |
| 20 | documents | imz_documents_check_03 | CHECK | status IN ('active','quarantined','deleted') | database/migrations/2026_09_24_002000_investmoz_content.php |
| 21 | documents | imz_documents_check_04 | CHECK | sha256 ~ '^[0-9a-f]{64}$' | database/migrations/2026_09_24_002000_investmoz_content.php |
| 22 | geo_locations | imz_geo_locations_parent_id_fk | FOREIGN KEY | parent_id -> geo_locations.id | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 23 | geo_locations | imz_geo_locations_pk | PRIMARY KEY | id | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 24 | geo_locations | imz_geo_locations_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 25 | geo_locations | imz_geo_locations_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 26 | geo_locations | imz_geo_locations_check_03 | CHECK | location_type IN ('country','province','district','municipality','site') | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 27 | geo_geometries | imz_geo_geometries_geo_location_id_fk | FOREIGN KEY | geo_location_id -> geo_locations.id | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 28 | geo_geometries | imz_geo_geometries_pk | PRIMARY KEY | id | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 29 | geo_geometries | imz_geo_geometries_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 30 | geo_geometries | imz_geo_geometries_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 31 | geo_geometries | imz_geo_geometries_check_03 | CHECK | geometry_type IN ('point','line','polygon','multipolygon') | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 32 | geo_geometries | imz_geo_geometries_check_04 | CHECK | ST_SRID(geom) = 4326 | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 33 | geo_geometries | imz_geo_geometries_check_05 | CHECK | ST_NDims(geom) = 2 | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 34 | geo_geometries | imz_geo_geometries_check_06 | CHECK | NOT ST_IsEmpty(geom) | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 35 | geo_geometries | imz_geo_geometries_check_07 | CHECK | ST_IsValid(geom) | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 36 | geo_geometries | imz_geo_geometries_check_08 | CHECK | (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') | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 37 | geo_geometries | imz_geo_geometries_check_09 | CHECK | ST_XMin(Box3D(geom)) >= -180 AND ST_XMax(Box3D(geom)) <= 180 AND ST_YMin(Box3D(geom)) >= -90 AND ST_YMax(Box3D(geom)) <= 90 | database/migrations/2026_09_24_003000_investmoz_geography.php |
| 38 | projects | imz_projects_pk | PRIMARY KEY | id | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 39 | projects | imz_projects_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 40 | projects | imz_projects_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 41 | projects | imz_projects_check_03 | CHECK | status IN ('draft','planned','active','suspended','completed','cancelled') | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 42 | projects | imz_projects_check_04 | CHECK | budget_amount IS NULL OR budget_amount >= 0 | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 43 | projects | imz_projects_check_05 | CHECK | end_date IS NULL OR start_date IS NULL OR end_date >= start_date | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 44 | projects | imz_projects_check_06 | CHECK | (budget_amount IS NULL) = (budget_currency IS NULL) | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 45 | projects | imz_projects_check_07 | CHECK | budget_currency IS NULL OR budget_currency ~ '^[A-Z]{3}$' | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 46 | project_locations | imz_project_locations_project_id_fk | FOREIGN KEY | project_id -> projects.id | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 47 | project_locations | imz_project_locations_geo_location_id_fk | FOREIGN KEY | geo_location_id -> geo_locations.id | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 48 | project_locations | imz_project_locations_pk | PRIMARY KEY | id | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 49 | project_locations | imz_project_locations_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 50 | project_locations | imz_project_locations_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 51 | project_locations | imz_project_locations_check_03 | CHECK | role IN ('primary','secondary','impact') | database/migrations/2026_09_24_004000_investmoz_projects.php |
| 52 | economic_clusters | imz_economic_clusters_pk | PRIMARY KEY | id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 53 | economic_clusters | imz_economic_clusters_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 54 | economic_clusters | imz_economic_clusters_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 55 | economic_clusters | imz_economic_clusters_check_03 | CHECK | status IN ('planned','active','inactive') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 56 | value_chains | imz_value_chains_cluster_id_fk | FOREIGN KEY | cluster_id -> economic_clusters.id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 57 | value_chains | imz_value_chains_pk | PRIMARY KEY | id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 58 | value_chains | imz_value_chains_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 59 | value_chains | imz_value_chains_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 60 | value_chains | imz_value_chains_check_03 | CHECK | stage IN ('input','production','processing','logistics','market') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 61 | value_chain_links | imz_value_chain_links_from_value_chain_id_fk | FOREIGN KEY | from_value_chain_id -> value_chains.id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 62 | value_chain_links | imz_value_chain_links_to_value_chain_id_fk | FOREIGN KEY | to_value_chain_id -> value_chains.id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 63 | value_chain_links | imz_value_chain_links_pk | PRIMARY KEY | id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 64 | value_chain_links | imz_value_chain_links_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 65 | value_chain_links | imz_value_chain_links_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 66 | value_chain_links | imz_value_chain_links_check_03 | CHECK | link_type IN ('supplies','processes','distributes','supports') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 67 | value_chain_links | imz_value_chain_links_check_04 | CHECK | from_value_chain_id <> to_value_chain_id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 68 | cluster_projects | imz_cluster_projects_cluster_id_fk | FOREIGN KEY | cluster_id -> economic_clusters.id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 69 | cluster_projects | imz_cluster_projects_project_id_fk | FOREIGN KEY | project_id -> projects.id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 70 | cluster_projects | imz_cluster_projects_pk | PRIMARY KEY | id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 71 | cluster_projects | imz_cluster_projects_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 72 | cluster_projects | imz_cluster_projects_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 73 | cluster_projects | imz_cluster_projects_check_03 | CHECK | role IN ('anchor','complementary','supporting') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 74 | anchor_project_links | imz_anchor_project_links_anchor_project_id_fk | FOREIGN KEY | anchor_project_id -> projects.id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 75 | anchor_project_links | imz_anchor_project_links_cluster_id_fk | FOREIGN KEY | cluster_id -> economic_clusters.id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 76 | anchor_project_links | imz_anchor_project_links_pk | PRIMARY KEY | id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 77 | anchor_project_links | imz_anchor_project_links_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 78 | anchor_project_links | imz_anchor_project_links_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 79 | complementary_project_links | imz_complementary_project_links_anchor_project_id_fk | FOREIGN KEY | anchor_project_id -> projects.id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 80 | complementary_project_links | imz_complementary_project_links_complementary_project_id_fk | FOREIGN KEY | complementary_project_id -> projects.id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 81 | complementary_project_links | imz_complementary_project_links_pk | PRIMARY KEY | id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 82 | complementary_project_links | imz_complementary_project_links_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 83 | complementary_project_links | imz_complementary_project_links_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 84 | complementary_project_links | imz_complementary_project_links_check_03 | CHECK | relation_type IN ('dependency','enabler','supplier','market') | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 85 | complementary_project_links | imz_complementary_project_links_check_04 | CHECK | anchor_project_id<>complementary_project_id | database/migrations/2026_09_24_005000_investmoz_clusters.php |
| 86 | development_corridors | imz_development_corridors_pk | PRIMARY KEY | id | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 87 | development_corridors | imz_development_corridors_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 88 | development_corridors | imz_development_corridors_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 89 | development_corridors | imz_development_corridors_check_03 | CHECK | status IN ('proposed','active','closed') | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 90 | corridor_locations | imz_corridor_locations_corridor_id_fk | FOREIGN KEY | corridor_id -> development_corridors.id | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 91 | corridor_locations | imz_corridor_locations_geo_location_id_fk | FOREIGN KEY | geo_location_id -> geo_locations.id | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 92 | corridor_locations | imz_corridor_locations_pk | PRIMARY KEY | id | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 93 | corridor_locations | imz_corridor_locations_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 94 | corridor_locations | imz_corridor_locations_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 95 | corridor_locations | imz_corridor_locations_check_03 | CHECK | sequence_no>0 | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 96 | corridor_projects | imz_corridor_projects_corridor_id_fk | FOREIGN KEY | corridor_id -> development_corridors.id | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 97 | corridor_projects | imz_corridor_projects_project_id_fk | FOREIGN KEY | project_id -> projects.id | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 98 | corridor_projects | imz_corridor_projects_pk | PRIMARY KEY | id | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 99 | corridor_projects | imz_corridor_projects_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 100 | corridor_projects | imz_corridor_projects_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 101 | corridor_clusters | imz_corridor_clusters_corridor_id_fk | FOREIGN KEY | corridor_id -> development_corridors.id | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 102 | corridor_clusters | imz_corridor_clusters_cluster_id_fk | FOREIGN KEY | cluster_id -> economic_clusters.id | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 103 | corridor_clusters | imz_corridor_clusters_pk | PRIMARY KEY | id | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 104 | corridor_clusters | imz_corridor_clusters_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 105 | corridor_clusters | imz_corridor_clusters_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_006000_investmoz_corridors.php |
| 106 | investors | imz_investors_organization_id_fk | FOREIGN KEY | organization_id -> organizations.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 107 | investors | imz_investors_pk | PRIMARY KEY | id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 108 | investors | imz_investors_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 109 | investors | imz_investors_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 110 | investors | imz_investors_check_03 | CHECK | investor_type IN ('domestic','foreign','institutional','individual') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 111 | investors | imz_investors_check_04 | CHECK | status IN ('prospect','active','inactive') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 112 | contacts | imz_contacts_pk | PRIMARY KEY | id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 113 | contacts | imz_contacts_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 114 | contacts | imz_contacts_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 115 | investor_contacts | imz_investor_contacts_investor_id_fk | FOREIGN KEY | investor_id -> investors.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 116 | investor_contacts | imz_investor_contacts_contact_id_fk | FOREIGN KEY | contact_id -> contacts.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 117 | investor_contacts | imz_investor_contacts_pk | PRIMARY KEY | investor_id, contact_id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 118 | leads | imz_leads_investor_id_fk | FOREIGN KEY | investor_id -> investors.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 119 | leads | imz_leads_owner_user_id_fk | FOREIGN KEY | owner_user_id -> users.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 120 | leads | imz_leads_pk | PRIMARY KEY | id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 121 | leads | imz_leads_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 122 | leads | imz_leads_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 123 | leads | imz_leads_check_03 | CHECK | status IN ('new','qualified','disqualified','converted') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 124 | leads | imz_leads_check_04 | CHECK | (estimated_amount IS NULL)=(currency IS NULL) | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 125 | leads | imz_leads_check_05 | CHECK | estimated_amount IS NULL OR estimated_amount >= 0 | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 126 | leads | imz_leads_check_06 | CHECK | currency IS NULL OR currency ~ '^[A-Z]{3}$' | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 127 | crm_opportunities | imz_crm_opportunities_lead_id_fk | FOREIGN KEY | lead_id -> leads.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 128 | crm_opportunities | imz_crm_opportunities_project_id_fk | FOREIGN KEY | project_id -> projects.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 129 | crm_opportunities | imz_crm_opportunities_owner_user_id_fk | FOREIGN KEY | owner_user_id -> users.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 130 | crm_opportunities | imz_crm_opportunities_pk | PRIMARY KEY | id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 131 | crm_opportunities | imz_crm_opportunities_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 132 | crm_opportunities | imz_crm_opportunities_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 133 | crm_opportunities | imz_crm_opportunities_check_03 | CHECK | stage IN ('discovery','assessment','negotiation','approved','lost') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 134 | crm_opportunities | imz_crm_opportunities_check_04 | CHECK | probability BETWEEN 0 AND 100 | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 135 | crm_opportunities | imz_crm_opportunities_check_05 | CHECK | (amount IS NULL)=(currency IS NULL) | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 136 | crm_opportunities | imz_crm_opportunities_check_06 | CHECK | amount IS NULL OR amount >= 0 | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 137 | crm_opportunities | imz_crm_opportunities_check_07 | CHECK | currency IS NULL OR currency ~ '^[A-Z]{3}$' | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 138 | activities | imz_activities_investor_id_fk | FOREIGN KEY | investor_id -> investors.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 139 | activities | imz_activities_opportunity_id_fk | FOREIGN KEY | opportunity_id -> crm_opportunities.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 140 | activities | imz_activities_actor_user_id_fk | FOREIGN KEY | actor_user_id -> users.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 141 | activities | imz_activities_pk | PRIMARY KEY | id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 142 | activities | imz_activities_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 143 | activities | imz_activities_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 144 | activities | imz_activities_check_03 | CHECK | activity_type IN ('call','meeting','email','note') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 145 | tasks | imz_tasks_assignee_user_id_fk | FOREIGN KEY | assignee_user_id -> users.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 146 | tasks | imz_tasks_opportunity_id_fk | FOREIGN KEY | opportunity_id -> crm_opportunities.id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 147 | tasks | imz_tasks_pk | PRIMARY KEY | id | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 148 | tasks | imz_tasks_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 149 | tasks | imz_tasks_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 150 | tasks | imz_tasks_check_03 | CHECK | status IN ('open','in_progress','done','cancelled') | database/migrations/2026_09_24_007000_investmoz_crm.php |
| 151 | investor_journeys | imz_investor_journeys_investor_id_fk | FOREIGN KEY | investor_id -> investors.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 152 | investor_journeys | imz_investor_journeys_opportunity_id_fk | FOREIGN KEY | opportunity_id -> crm_opportunities.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 153 | investor_journeys | imz_investor_journeys_pk | PRIMARY KEY | id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 154 | investor_journeys | imz_investor_journeys_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 155 | investor_journeys | imz_investor_journeys_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 156 | investor_journeys | imz_investor_journeys_check_03 | CHECK | status IN ('started','active','completed','cancelled') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 157 | journey_steps | imz_journey_steps_journey_id_fk | FOREIGN KEY | journey_id -> investor_journeys.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 158 | journey_steps | imz_journey_steps_pk | PRIMARY KEY | id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 159 | journey_steps | imz_journey_steps_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 160 | journey_steps | imz_journey_steps_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 161 | journey_steps | imz_journey_steps_check_03 | CHECK | sequence_no>0 | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 162 | journey_steps | imz_journey_steps_check_04 | CHECK | status IN ('pending','active','completed','blocked') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 163 | submissions | imz_submissions_journey_step_id_fk | FOREIGN KEY | journey_step_id -> journey_steps.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 164 | submissions | imz_submissions_submitted_by_fk | FOREIGN KEY | submitted_by -> users.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 165 | submissions | imz_submissions_pk | PRIMARY KEY | id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 166 | submissions | imz_submissions_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 167 | submissions | imz_submissions_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 168 | submissions | imz_submissions_check_03 | CHECK | status IN ('draft','submitted','accepted','rejected') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 169 | aftercare_plans | imz_aftercare_plans_investor_id_fk | FOREIGN KEY | investor_id -> investors.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 170 | aftercare_plans | imz_aftercare_plans_project_id_fk | FOREIGN KEY | project_id -> projects.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 171 | aftercare_plans | imz_aftercare_plans_owner_user_id_fk | FOREIGN KEY | owner_user_id -> users.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 172 | aftercare_plans | imz_aftercare_plans_pk | PRIMARY KEY | id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 173 | aftercare_plans | imz_aftercare_plans_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 174 | aftercare_plans | imz_aftercare_plans_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 175 | aftercare_plans | imz_aftercare_plans_check_03 | CHECK | status IN ('draft','active','closed') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 176 | constraints | imz_constraints_aftercare_plan_id_fk | FOREIGN KEY | aftercare_plan_id -> aftercare_plans.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 177 | constraints | imz_constraints_pk | PRIMARY KEY | id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 178 | constraints | imz_constraints_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 179 | constraints | imz_constraints_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 180 | constraints | imz_constraints_check_03 | CHECK | severity IN ('low','medium','high','critical') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 181 | constraints | imz_constraints_check_04 | CHECK | status IN ('open','mitigating','resolved') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 182 | escalations | imz_escalations_constraint_id_fk | FOREIGN KEY | constraint_id -> constraints.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 183 | escalations | imz_escalations_escalated_by_fk | FOREIGN KEY | escalated_by -> users.id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 184 | escalations | imz_escalations_pk | PRIMARY KEY | id | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 185 | escalations | imz_escalations_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 186 | escalations | imz_escalations_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 187 | escalations | imz_escalations_check_03 | CHECK | level IN ('operational','management','executive') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 188 | escalations | imz_escalations_check_04 | CHECK | status IN ('open','acknowledged','closed') | database/migrations/2026_09_24_008000_investmoz_journey_aftercare.php |
| 189 | skills | imz_skills_pk | PRIMARY KEY | id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 190 | skills | imz_skills_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_009000_investmoz_education.php |
| 191 | skills | imz_skills_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_009000_investmoz_education.php |
| 192 | occupations | imz_occupations_pk | PRIMARY KEY | id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 193 | occupations | imz_occupations_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_009000_investmoz_education.php |
| 194 | occupations | imz_occupations_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_009000_investmoz_education.php |
| 195 | training_needs | imz_training_needs_project_id_fk | FOREIGN KEY | project_id -> projects.id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 196 | training_needs | imz_training_needs_occupation_id_fk | FOREIGN KEY | occupation_id -> occupations.id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 197 | training_needs | imz_training_needs_skill_id_fk | FOREIGN KEY | skill_id -> skills.id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 198 | training_needs | imz_training_needs_pk | PRIMARY KEY | id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 199 | training_needs | imz_training_needs_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_009000_investmoz_education.php |
| 200 | training_needs | imz_training_needs_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_009000_investmoz_education.php |
| 201 | training_needs | imz_training_needs_check_03 | CHECK | quantity>0 | database/migrations/2026_09_24_009000_investmoz_education.php |
| 202 | training_needs | imz_training_needs_check_04 | CHECK | priority IN ('Must','Should','Could') | database/migrations/2026_09_24_009000_investmoz_education.php |
| 203 | training_providers | imz_training_providers_organization_id_fk | FOREIGN KEY | organization_id -> organizations.id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 204 | training_providers | imz_training_providers_pk | PRIMARY KEY | id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 205 | training_providers | imz_training_providers_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_009000_investmoz_education.php |
| 206 | training_providers | imz_training_providers_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_009000_investmoz_education.php |
| 207 | training_providers | imz_training_providers_check_03 | CHECK | status IN ('candidate','approved','inactive') | database/migrations/2026_09_24_009000_investmoz_education.php |
| 208 | courses | imz_courses_provider_id_fk | FOREIGN KEY | provider_id -> training_providers.id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 209 | courses | imz_courses_pk | PRIMARY KEY | id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 210 | courses | imz_courses_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_009000_investmoz_education.php |
| 211 | courses | imz_courses_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_009000_investmoz_education.php |
| 212 | courses | imz_courses_check_03 | CHECK | status IN ('draft','published','retired') | database/migrations/2026_09_24_009000_investmoz_education.php |
| 213 | education_opportunities | imz_education_opportunities_course_id_fk | FOREIGN KEY | course_id -> courses.id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 214 | education_opportunities | imz_education_opportunities_geo_location_id_fk | FOREIGN KEY | geo_location_id -> geo_locations.id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 215 | education_opportunities | imz_education_opportunities_pk | PRIMARY KEY | id | database/migrations/2026_09_24_009000_investmoz_education.php |
| 216 | education_opportunities | imz_education_opportunities_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_009000_investmoz_education.php |
| 217 | education_opportunities | imz_education_opportunities_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_009000_investmoz_education.php |
| 218 | education_opportunities | imz_education_opportunities_check_03 | CHECK | capacity>=0 | database/migrations/2026_09_24_009000_investmoz_education.php |
| 219 | education_opportunities | imz_education_opportunities_check_04 | CHECK | status IN ('planned','open','closed','cancelled') | database/migrations/2026_09_24_009000_investmoz_education.php |
| 220 | education_opportunities | imz_education_opportunities_check_05 | CHECK | end_date IS NULL OR end_date>=start_date | database/migrations/2026_09_24_009000_investmoz_education.php |
| 221 | project_documents | imz_project_documents_project_id_fk | FOREIGN KEY | project_id -> projects.id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 222 | project_documents | imz_project_documents_document_id_fk | FOREIGN KEY | document_id -> documents.id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 223 | project_documents | imz_project_documents_pk | PRIMARY KEY | project_id, document_id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 224 | investor_documents | imz_investor_documents_investor_id_fk | FOREIGN KEY | investor_id -> investors.id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 225 | investor_documents | imz_investor_documents_document_id_fk | FOREIGN KEY | document_id -> documents.id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 226 | investor_documents | imz_investor_documents_pk | PRIMARY KEY | investor_id, document_id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 227 | journey_documents | imz_journey_documents_journey_id_fk | FOREIGN KEY | journey_id -> investor_journeys.id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 228 | journey_documents | imz_journey_documents_document_id_fk | FOREIGN KEY | document_id -> documents.id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 229 | journey_documents | imz_journey_documents_pk | PRIMARY KEY | journey_id, document_id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 230 | aftercare_documents | imz_aftercare_documents_aftercare_plan_id_fk | FOREIGN KEY | aftercare_plan_id -> aftercare_plans.id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 231 | aftercare_documents | imz_aftercare_documents_document_id_fk | FOREIGN KEY | document_id -> documents.id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 232 | aftercare_documents | imz_aftercare_documents_pk | PRIMARY KEY | aftercare_plan_id, document_id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 233 | education_documents | imz_education_documents_education_opportunity_id_fk | FOREIGN KEY | education_opportunity_id -> education_opportunities.id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 234 | education_documents | imz_education_documents_document_id_fk | FOREIGN KEY | document_id -> documents.id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 235 | education_documents | imz_education_documents_pk | PRIMARY KEY | education_opportunity_id, document_id | database/migrations/2026_09_24_009500_investmoz_document_links.php |
| 236 | audit_events | imz_audit_events_actor_user_id_fk | FOREIGN KEY | actor_user_id -> users.id | database/migrations/2026_09_24_010000_investmoz_governance_ai.php |
| 237 | audit_events | imz_audit_events_pk | PRIMARY KEY | id | database/migrations/2026_09_24_010000_investmoz_governance_ai.php |
| 238 | audit_events | imz_audit_events_check_01 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_010000_investmoz_governance_ai.php |
| 239 | outbox_events | imz_outbox_events_pk | PRIMARY KEY | id | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 240 | outbox_events | imz_outbox_events_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 241 | outbox_events | imz_outbox_events_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 242 | outbox_events | imz_outbox_events_check_03 | CHECK | status IN ('pending','published','failed') | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 243 | inbox_events | imz_inbox_events_pk | PRIMARY KEY | id | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 244 | inbox_events | imz_inbox_events_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 245 | inbox_events | imz_inbox_events_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 246 | inbox_events | imz_inbox_events_check_03 | CHECK | status IN ('received','processed','failed') | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 247 | sync_runs | imz_sync_runs_pk | PRIMARY KEY | id | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 248 | sync_runs | imz_sync_runs_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 249 | sync_runs | imz_sync_runs_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 250 | sync_runs | imz_sync_runs_check_03 | CHECK | direction IN ('inbound','outbound') | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 251 | sync_runs | imz_sync_runs_check_04 | CHECK | status IN ('running','succeeded','failed','cancelled') | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 252 | reconciliation_issues | imz_reconciliation_issues_sync_run_id_fk | FOREIGN KEY | sync_run_id -> sync_runs.id | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 253 | reconciliation_issues | imz_reconciliation_issues_pk | PRIMARY KEY | id | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 254 | reconciliation_issues | imz_reconciliation_issues_check_01 | CHECK | version_no > 0 | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 255 | reconciliation_issues | imz_reconciliation_issues_check_02 | CHECK | data_classification IN ('public','internal','confidential','restricted') | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 256 | reconciliation_issues | imz_reconciliation_issues_check_03 | CHECK | issue_type IN ('missing','duplicate','orphan','checksum','geometry','value') | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 257 | reconciliation_issues | imz_reconciliation_issues_check_04 | CHECK | severity IN ('warning','error') | database/migrations/2026_09_24_011000_investmoz_integrations.php |
| 258 | reconciliation_issues | imz_reconciliation_issues_check_05 | CHECK | status IN ('open','accepted','resolved') | database/migrations/2026_09_24_011000_investmoz_integrations.php |