2 lines
116 KiB
XML
2 lines
116 KiB
XML
<?xml version='1.0' encoding='utf-8'?>
|
|
<mxfile host="app.diagrams.net" modified="2026-10-13T00:00:00.000Z" agent="Codex" version="24.7.17" type="device"><diagram id="model-1" name="Oportunidades e submissões"><mxGraphModel dx="2600" dy="2610" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="2610" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p0_title" value="Esquema relacional — Oportunidades e submissões" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p0_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p0_t0" value="<b>interest_requests</b><hr>PK id<br>FK opportunity_id → opportunities.id NULL<br>FK reviewed_by → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t1" value="<b>interest_submission_receipts</b><hr>FK interest_request_id → interest_requests.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t2" value="<b>investment_accounts</b><hr>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t3" value="<b>investment_company_declarations</b><hr>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t4" value="<b>investment_dossiers</b><hr>FK cluster_id → economic_clusters.id NULL<br>FK corridor_id → development_corridors.id NULL<br>FK editor_id → users.id NULL<br>FK project_id → projects.id NULL<br>FK reviewer_id → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t5" value="<b>investment_gaps</b><hr>FK cluster_id → economic_clusters.id<br>FK value_chain_id → value_chains.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t6" value="<b>investment_messages</b><hr>FK actor_id → users.id<br>FK submission_id → investment_submissions.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t7" value="<b>investment_notifications</b><hr>FK submission_id → investment_submissions.id<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t8" value="<b>investment_reference_options</b><hr>(sem FK identificada)" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t9" value="<b>investment_specific_needs</b><hr>FK category_id → investment_reference_options.id<br>FK option_id → investment_reference_options.id<br>FK priority_id → investment_reference_options.id NULL<br>FK submission_id → investment_submissions.id<br>FK unit_id → investment_reference_options.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t10" value="<b>investment_submission_attachments</b><hr>FK document_id → documents.id<br>FK submission_id → investment_submissions.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t11" value="<b>investment_submission_events</b><hr>FK actor_id → users.id<br>FK submission_id → investment_submissions.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t12" value="<b>investment_submission_revisions</b><hr>FK submission_id → investment_submissions.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t13" value="<b>investment_submission_zones</b><hr>FK submission_id → investment_submissions.id<br>FK zone_id → investment_zones.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t14" value="<b>investment_submissions</b><hr>FK dossier_id → investment_dossiers.id NULL<br>FK interest_request_id → interest_requests.id NULL<br>FK opportunity_id → opportunities.id NULL<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t15" value="<b>investor_accounts</b><hr>FK investor_id → investors.id<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t16" value="<b>opportunities</b><hr>PK id<br>FK sector_id → sectors.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t17" value="<b>opportunity_clusters</b><hr>FK cluster_id → economic_clusters.id<br>FK opportunity_id → opportunities.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t18" value="<b>opportunity_corridors</b><hr>FK corridor_id → development_corridors.id<br>FK opportunity_id → opportunities.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t19" value="<b>opportunity_facets</b><hr>FK opportunity_id → opportunities.id<br>FK option_id → investment_reference_options.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t20" value="<b>opportunity_favourites</b><hr>FK opportunity_id → opportunities.id<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1870" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t21" value="<b>opportunity_locations</b><hr>FK geo_location_id → geo_locations.id<br>FK opportunity_id → opportunities.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="1870" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t22" value="<b>opportunity_profiles</b><hr>FK opportunity_id → opportunities.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="1870" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t23" value="<b>opportunity_projects</b><hr>FK opportunity_id → opportunities.id<br>FK project_id → projects.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="1870" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_t24" value="<b>sectors</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="2220" width="570" height="280" as="geometry" /></mxCell><mxCell id="p0_e1" value="option_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t8" target="p0_t19"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e2" value="dossier_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t4" target="p0_t14"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e3" value="submission_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t14" target="p0_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e4" value="category_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t8" target="p0_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e5" value="option_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t8" target="p0_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e6" value="unit_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t8" target="p0_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e7" value="priority_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t8" target="p0_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e8" value="submission_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t14" target="p0_t10"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e9" value="submission_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t14" target="p0_t11"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e10" value="submission_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t14" target="p0_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e11" value="submission_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t14" target="p0_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e12" value="submission_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t14" target="p0_t12"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e13" value="submission_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t14" target="p0_t13"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e132" value="sector_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t24" target="p0_t16"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p0_e133" value="opportunity_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p0_t16" target="p0_t0"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-2" name="Projectos, geografia e territórios"><mxGraphModel dx="2600" dy="2260" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="2260" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p1_title" value="Esquema relacional — Projectos, geografia e territórios" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p1_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p1_t0" value="<b>anchor_project_links</b><hr>PK id<br>FK anchor_project_id → projects.id<br>FK cluster_id → economic_clusters.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t1" value="<b>authorities</b><hr>FK catalog_version_id → reference_catalog_versions.id<br>FK jurisdiction_id → geo_locations.id NULL<br>FK organization_id → organizations.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t2" value="<b>cluster_projects</b><hr>PK id<br>FK cluster_id → economic_clusters.id<br>FK project_id → projects.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t3" value="<b>complementary_project_links</b><hr>PK id<br>FK anchor_project_id → projects.id<br>FK complementary_project_id → projects.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t4" value="<b>corridor_clusters</b><hr>PK id<br>FK cluster_id → economic_clusters.id<br>FK corridor_id → development_corridors.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t5" value="<b>corridor_locations</b><hr>PK id<br>FK corridor_id → development_corridors.id<br>FK geo_location_id → geo_locations.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t6" value="<b>corridor_projects</b><hr>PK id<br>FK corridor_id → development_corridors.id<br>FK project_id → projects.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t7" value="<b>development_corridors</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t8" value="<b>economic_activities</b><hr>FK catalog_version_id → reference_catalog_versions.id<br>FK sector_id → sectors.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t9" value="<b>economic_clusters</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t10" value="<b>geo_geometries</b><hr>PK id<br>FK geo_location_id → geo_locations.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t11" value="<b>geo_locations</b><hr>PK id<br>FK parent_id → geo_locations.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t12" value="<b>geo_names</b><hr>FK geo_location_id → geo_locations.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t13" value="<b>geo_sources</b><hr>FK editor_id → users.id<br>FK reviewer_id → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t14" value="<b>geo_territory_profiles</b><hr>FK capital_territory_id → geo_locations.id NULL<br>FK editor_id → users.id<br>FK geo_location_id → geo_locations.id<br>FK publisher_id → users.id NULL<br>FK reviewer_id → users.id NULL<br>FK source_id → geo_sources.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t15" value="<b>geo_territory_revisions</b><hr>FK actor_id → users.id<br>FK geo_location_id → geo_locations.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t16" value="<b>geo_write_receipts</b><hr>FK actor_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t17" value="<b>project_documents</b><hr>PK project_id, document_id<br>FK document_id → documents.id<br>FK project_id → projects.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t18" value="<b>project_locations</b><hr>PK id<br>FK geo_location_id → geo_locations.id<br>FK project_id → projects.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t19" value="<b>projects</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t20" value="<b>reference_catalog_versions</b><hr>(sem FK identificada)" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1870" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t21" value="<b>value_chain_links</b><hr>PK id<br>FK from_value_chain_id → value_chains.id<br>FK to_value_chain_id → value_chains.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="1870" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_t22" value="<b>value_chains</b><hr>PK id<br>FK cluster_id → economic_clusters.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="1870" width="570" height="280" as="geometry" /></mxCell><mxCell id="p1_e14" value="parent_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t11" target="p1_t11"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e15" value="geo_location_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t11" target="p1_t10"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e16" value="project_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t19" target="p1_t18"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e17" value="geo_location_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t11" target="p1_t18"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e18" value="cluster_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t9" target="p1_t22"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e19" value="from_value_chain_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t22" target="p1_t21"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e20" value="to_value_chain_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t22" target="p1_t21"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e21" value="cluster_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t9" target="p1_t2"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e22" value="project_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t19" target="p1_t2"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e23" value="anchor_project_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t19" target="p1_t0"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e24" value="cluster_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t9" target="p1_t0"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e25" value="anchor_project_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t19" target="p1_t3"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e26" value="complementary_project_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t19" target="p1_t3"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e27" value="corridor_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t7" target="p1_t5"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e28" value="geo_location_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t11" target="p1_t5"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e29" value="corridor_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t7" target="p1_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e30" value="project_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t19" target="p1_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e31" value="corridor_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t7" target="p1_t4"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e32" value="cluster_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t9" target="p1_t4"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e50" value="geo_location_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t11" target="p1_t14"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e51" value="source_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t13" target="p1_t14"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e52" value="capital_territory_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t11" target="p1_t14"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e53" value="geo_location_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t11" target="p1_t12"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e54" value="geo_location_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t11" target="p1_t15"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e63" value="catalog_version_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t20" target="p1_t1"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e64" value="jurisdiction_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t11" target="p1_t1"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p1_e65" value="catalog_version_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p1_t20" target="p1_t8"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-3" name="Zonas e fontes legais"><mxGraphModel dx="2600" dy="1500" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1500" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p2_title" value="Esquema relacional — Zonas e fontes legais" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p2_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p2_t0" value="<b>investment_item_opportunities</b><hr>FK item_id → investment_items.id<br>FK opportunity_id → opportunities.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t1" value="<b>investment_item_projects</b><hr>FK item_id → investment_items.id<br>FK project_id → projects.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t2" value="<b>investment_items</b><hr>(sem FK identificada)" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t3" value="<b>investment_legal_sources</b><hr>FK owner_id → users.id<br>FK validator_id → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t4" value="<b>investment_zone_attachment_events</b><hr>FK actor_id → users.id<br>FK attachment_id → investment_zone_attachments.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t5" value="<b>investment_zone_attachments</b><hr>FK document_id → documents.id<br>FK publicly_selected_by → users.id NULL<br>FK reviewed_by → users.id NULL<br>FK uploaded_by → users.id<br>FK zone_id → investment_zones.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t6" value="<b>investment_zone_geometries</b><hr>FK editor_id → users.id NULL<br>FK geometry_id → geo_geometries.id<br>FK legal_source_id → investment_legal_sources.id NULL<br>FK reviewer_id → users.id NULL<br>FK zone_id → investment_zones.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t7" value="<b>investment_zone_links</b><hr>FK item_id → investment_items.id<br>FK zone_id → investment_zones.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t8" value="<b>investment_zone_locations</b><hr>FK editor_id → users.id<br>FK geo_location_id → geo_locations.id<br>FK legal_source_id → investment_legal_sources.id NULL<br>FK reviewer_id → users.id NULL<br>FK zone_id → investment_zones.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t9" value="<b>investment_zone_relations</b><hr>FK cluster_id → economic_clusters.id NULL<br>FK corridor_id → development_corridors.id NULL<br>FK project_id → projects.id NULL<br>FK zone_id → investment_zones.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t10" value="<b>investment_zone_revisions</b><hr>FK actor_id → users.id<br>FK editor_id → users.id<br>FK legal_source_id → investment_legal_sources.id NULL<br>FK validator_id → users.id NULL<br>FK zone_id → investment_zones.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_t11" value="<b>investment_zones</b><hr>FK editor_id → users.id<br>FK legal_source_id → investment_legal_sources.id NULL<br>FK operator_id → organizations.id NULL<br>FK parent_zone_id → investment_zones.id NULL<br>FK reviewer_id → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p2_e33" value="legal_source_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t3" target="p2_t11"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e34" value="zone_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t11" target="p2_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e38" value="item_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t2" target="p2_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e39" value="zone_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t11" target="p2_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e40" value="zone_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t11" target="p2_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e42" value="legal_source_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t3" target="p2_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e43" value="zone_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t11" target="p2_t10"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e44" value="legal_source_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t3" target="p2_t10"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e69" value="parent_zone_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t11" target="p2_t11"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e70" value="zone_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t11" target="p2_t8"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e72" value="legal_source_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t3" target="p2_t8"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e73" value="zone_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t11" target="p2_t5"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e74" value="attachment_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t5" target="p2_t4"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e75" value="item_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t2" target="p2_t0"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p2_e76" value="item_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p2_t2" target="p2_t1"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-4" name="Negócios existentes e assistência fundiária"><mxGraphModel dx="2600" dy="1560" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1560" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p3_title" value="Esquema relacional — Negócios existentes e assistência fundiária" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p3_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p3_t0" value="<b>business_workflow_transitions</b><hr>FK actor_id → users.id NULL<br>FK existing_business_id → existing_businesses.id NULL<br>FK interest_request_id → interest_requests.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t1" value="<b>existing_business_document_links</b><hr>FK document_id → documents.id<br>FK existing_business_id → existing_businesses.id NULL<br>FK interest_request_id → interest_requests.id NULL<br>FK uploaded_by → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t2" value="<b>existing_business_locations</b><hr>FK admin_post_id → geo_locations.id NULL<br>FK district_id → geo_locations.id NULL<br>FK existing_business_id → existing_businesses.id<br>FK locality_id → geo_locations.id NULL<br>FK province_id → geo_locations.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t3" value="<b>existing_business_mandates</b><hr>FK business_id → existing_businesses.id<br>FK document_id → documents.id<br>FK representative_user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t4" value="<b>existing_business_objects</b><hr>FK business_id → existing_businesses.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t5" value="<b>existing_business_reviews</b><hr>FK actor_id → users.id<br>FK business_id → existing_businesses.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t6" value="<b>existing_business_revisions</b><hr>FK actor_id → users.id<br>FK business_id → existing_businesses.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t7" value="<b>existing_business_rights</b><hr>FK business_object_id → existing_business_objects.id NULL<br>FK existing_business_id → existing_businesses.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t8" value="<b>existing_businesses</b><hr>FK investment_item_id → investment_items.id NULL<br>FK organization_id → organizations.id NULL<br>FK owner_user_id → users.id<br>FK sector_id → sectors.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t9" value="<b>external_record_links</b><hr>FK existing_business_id → existing_businesses.id NULL<br>FK interest_request_id → interest_requests.id NULL<br>FK investor_id → investors.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t10" value="<b>land_assistance_cases</b><hr>FK assigned_to → users.id NULL<br>FK interest_request_id → interest_requests.id NULL<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t11" value="<b>land_assistance_documents</b><hr>FK case_id → land_assistance_cases.id<br>FK document_id → documents.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t12" value="<b>land_assistance_events</b><hr>FK actor_id → users.id<br>FK case_id → land_assistance_cases.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_t13" value="<b>land_assistance_revisions</b><hr>FK case_id → land_assistance_cases.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p3_e46" value="business_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t8" target="p3_t4"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p3_e47" value="business_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t8" target="p3_t3"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p3_e48" value="business_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t8" target="p3_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p3_e49" value="business_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t8" target="p3_t5"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p3_e55" value="existing_business_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t8" target="p3_t2"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p3_e60" value="existing_business_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t8" target="p3_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p3_e61" value="business_object_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t4" target="p3_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p3_e62" value="existing_business_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t8" target="p3_t1"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p3_e66" value="case_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t10" target="p3_t13"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p3_e67" value="case_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t10" target="p3_t12"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p3_e68" value="case_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p3_t10" target="p3_t11"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-5" name="Documentos e portal"><mxGraphModel dx="2600" dy="1500" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1500" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p4_title" value="Esquema relacional — Documentos e portal" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p4_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p4_t0" value="<b>aftercare_documents</b><hr>PK aftercare_plan_id, document_id<br>FK aftercare_plan_id → aftercare_plans.id<br>FK document_id → documents.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p4_t1" value="<b>document_malware_scans</b><hr>FK document_id → documents.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p4_t2" value="<b>documents</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p4_t3" value="<b>education_documents</b><hr>PK education_opportunity_id, document_id<br>FK document_id → documents.id<br>FK education_opportunity_id → education_opportunities.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p4_t4" value="<b>investor_documents</b><hr>PK investor_id, document_id<br>FK document_id → documents.id<br>FK investor_id → investors.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p4_t5" value="<b>journey_documents</b><hr>PK journey_id, document_id<br>FK document_id → documents.id<br>FK journey_id → investor_journeys.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p4_t6" value="<b>portal_partnerships</b><hr>FK organization_id → organizations.id NULL<br>FK reviewed_by → users.id NULL<br>FK sector_id → sectors.id NULL<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p4_t7" value="<b>portal_resource_links</b><hr>FK resource_id → portal_resources.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p4_t8" value="<b>portal_resource_revisions</b><hr>FK actor_user_id → users.id NULL<br>FK resource_id → portal_resources.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p4_t9" value="<b>portal_resources</b><hr>FK approved_by → users.id<br>FK created_by → users.id NULL<br>FK document_id → documents.id<br>FK duplicate_of_resource_id → portal_resources.id NULL<br>FK last_reviewed_by → users.id NULL<br>FK territory_id → geo_locations.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p4_e79" value="document_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p4_t2" target="p4_t4"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p4_e80" value="document_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p4_t2" target="p4_t5"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p4_e81" value="document_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p4_t2" target="p4_t0"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p4_e82" value="document_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p4_t2" target="p4_t3"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p4_e83" value="document_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p4_t2" target="p4_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p4_e84" value="duplicate_of_resource_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p4_t9" target="p4_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p4_e85" value="resource_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p4_t9" target="p4_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p4_e86" value="resource_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p4_t9" target="p4_t8"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p4_e87" value="document_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p4_t2" target="p4_t1"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-6" name="CRM e jornada do investidor"><mxGraphModel dx="2600" dy="1560" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1560" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p5_title" value="Esquema relacional — CRM e jornada do investidor" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p5_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p5_t0" value="<b>activities</b><hr>PK id<br>FK actor_user_id → users.id NULL<br>FK investor_id → investors.id NULL<br>FK opportunity_id → crm_opportunities.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t1" value="<b>aftercare_plans</b><hr>PK id<br>FK investor_id → investors.id<br>FK owner_user_id → users.id NULL<br>FK project_id → projects.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t2" value="<b>constraints</b><hr>PK id<br>FK aftercare_plan_id → aftercare_plans.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t3" value="<b>contacts</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t4" value="<b>crm_opportunities</b><hr>PK id<br>FK lead_id → leads.id NULL<br>FK owner_user_id → users.id NULL<br>FK project_id → projects.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t5" value="<b>escalations</b><hr>PK id<br>FK constraint_id → constraints.id<br>FK escalated_by → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t6" value="<b>investor_contacts</b><hr>PK investor_id, contact_id<br>FK contact_id → contacts.id<br>FK investor_id → investors.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t7" value="<b>investor_journeys</b><hr>PK id<br>FK dossier_id → investment_dossiers.id NULL<br>FK interest_request_id → interest_requests.id NULL<br>FK investor_id → investors.id<br>FK opportunity_id → crm_opportunities.id NULL<br>FK origin_dossier_id → investment_dossiers.id NULL<br>FK user_id → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t8" value="<b>investors</b><hr>PK id<br>FK organization_id → organizations.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t9" value="<b>journey_steps</b><hr>PK id<br>FK journey_id → investor_journeys.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t10" value="<b>leads</b><hr>PK id<br>FK interest_request_id → interest_requests.id NULL<br>FK investor_id → investors.id NULL<br>FK owner_user_id → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t11" value="<b>submissions</b><hr>PK id<br>FK journey_step_id → journey_steps.id<br>FK submitted_by → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_t12" value="<b>tasks</b><hr>PK id<br>FK assignee_user_id → users.id NULL<br>FK existing_business_id → existing_businesses.id NULL<br>FK interest_request_id → interest_requests.id NULL<br>FK lead_id → leads.id NULL<br>FK opportunity_id → crm_opportunities.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p5_e88" value="investor_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t8" target="p5_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e89" value="contact_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t3" target="p5_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e90" value="investor_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t8" target="p5_t10"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e91" value="lead_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t10" target="p5_t4"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e92" value="investor_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t8" target="p5_t0"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e93" value="opportunity_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t4" target="p5_t0"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e94" value="opportunity_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t4" target="p5_t12"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e95" value="investor_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t8" target="p5_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e96" value="opportunity_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t4" target="p5_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e97" value="journey_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t7" target="p5_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e98" value="journey_step_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t9" target="p5_t11"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e99" value="investor_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t8" target="p5_t1"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e100" value="aftercare_plan_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t1" target="p5_t2"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e101" value="constraint_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t2" target="p5_t5"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p5_e102" value="lead_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p5_t10" target="p5_t12"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-7" name="Educação e formação"><mxGraphModel dx="2600" dy="1500" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1500" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p6_title" value="Esquema relacional — Educação e formação" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p6_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p6_t0" value="<b>courses</b><hr>PK id<br>FK provider_id → training_providers.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p6_t1" value="<b>education_investment_proposals</b><hr>FK created_by → users.id<br>FK labour_demand_id → labour_demands.id<br>FK opportunity_id → opportunities.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p6_t2" value="<b>education_opportunities</b><hr>PK id<br>FK course_id → courses.id<br>FK geo_location_id → geo_locations.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p6_t3" value="<b>labour_demands</b><hr>FK geo_location_id → geo_locations.id<br>FK occupation_id → occupations.id<br>FK project_id → projects.id<br>FK reviewed_by → users.id NULL<br>FK skill_id → skills.id<br>FK submitted_by → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p6_t4" value="<b>occupations</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p6_t5" value="<b>skills</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p6_t6" value="<b>training_capacities</b><hr>FK course_id → courses.id<br>FK geo_location_id → geo_locations.id<br>FK occupation_id → occupations.id<br>FK reviewed_by → users.id NULL<br>FK skill_id → skills.id<br>FK submitted_by → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p6_t7" value="<b>training_needs</b><hr>PK id<br>FK occupation_id → occupations.id NULL<br>FK project_id → projects.id NULL<br>FK skill_id → skills.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p6_t8" value="<b>training_providers</b><hr>PK id<br>FK organization_id → organizations.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p6_e103" value="occupation_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p6_t4" target="p6_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p6_e104" value="skill_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p6_t5" target="p6_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p6_e105" value="provider_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p6_t8" target="p6_t0"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p6_e106" value="course_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p6_t0" target="p6_t2"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p6_e107" value="labour_demand_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p6_t3" target="p6_t1"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p6_e111" value="occupation_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p6_t4" target="p6_t3"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p6_e112" value="skill_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p6_t5" target="p6_t3"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p6_e113" value="occupation_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p6_t4" target="p6_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p6_e114" value="skill_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p6_t5" target="p6_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p6_e115" value="course_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p6_t0" target="p6_t6"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-8" name="Simulação e parâmetros fiscais"><mxGraphModel dx="2600" dy="1560" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1560" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p7_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p7_t0" value="<b>questionnaire_versions</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t1" value="<b>simulation_audit_events</b><hr>PK id<br>FK simulation_id → simulations.id<br>FK actor_user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t2" value="<b>simulation_draft_business_links</b><hr>FK business_id → existing_businesses.id<br>FK linked_by → users.id<br>FK owner_user_id → users.id<br>FK unlinked_by → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t3" value="<b>simulation_form_drafts</b><hr>PK id<br>FK owner_user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t4" value="<b>simulation_idempotency</b><hr>PK id<br>FK simulation_id → simulations.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t5" value="<b>simulation_jobs</b><hr>PK id<br>FK simulation_id → simulations.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t6" value="<b>simulation_obligations</b><hr>PK id<br>FK simulation_id → simulations.id<br>FK scenario_id → simulation_scenarios.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t7" value="<b>simulation_reports</b><hr>PK id<br>FK simulation_id → simulations.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t8" value="<b>simulation_result_sources</b><hr>PK id<br>FK result_id → simulation_results.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t9" value="<b>simulation_results</b><hr>PK id<br>FK simulation_id → simulations.id<br>FK scenario_id → simulation_scenarios.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t10" value="<b>simulation_scenarios</b><hr>PK id<br>FK simulation_id → simulations.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t11" value="<b>simulation_tax_rule_events</b><hr>FK actor_user_id → users.id<br>FK rule_version_id → simulation_tax_rule_versions.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t12" value="<b>simulation_tax_rule_versions</b><hr>FK approver_id → users.id NULL<br>FK author_id → users.id<br>FK legal_source_id → investment_legal_sources.id<br>FK publisher_id → users.id NULL<br>FK reviewer_id → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_t13" value="<b>simulations</b><hr>PK id<br>FK questionnaire_version_id → questionnaire_versions.id<br>FK owner_user_id → users.id<br>FK organization_id → organizations.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p7_e5" value="rule_version_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t12" target="p7_t11"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e11" value="simulation_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t13" target="p7_t1"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e14" value="simulation_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t13" target="p7_t4"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e15" value="simulation_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t13" target="p7_t5"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e16" value="simulation_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t13" target="p7_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e17" value="scenario_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t10" target="p7_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e18" value="simulation_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t13" target="p7_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e19" value="result_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t9" target="p7_t8"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e20" value="simulation_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t13" target="p7_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e21" value="scenario_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t10" target="p7_t9"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e22" value="simulation_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t13" target="p7_t10"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p7_e23" value="questionnaire_version_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p7_t0" target="p7_t13"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-9" name="Inteligência artificial"><mxGraphModel dx="2600" dy="1500" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1500" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p8_title" value="Esquema relacional — Inteligência artificial" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p8_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p8_t0" value="<b>ai_chunks</b><hr>FK source_id → ai_sources.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p8_t1" value="<b>ai_controls</b><hr>(sem FK identificada)" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p8_t2" value="<b>ai_feedback</b><hr>FK run_id → ai_runs.id<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p8_t3" value="<b>ai_runs</b><hr>FK actor_id → users.id<br>FK reviewed_by → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p8_t4" value="<b>ai_sources</b><hr>FK document_id → documents.id<br>FK reviewed_by → users.id NULL<br>FK submitted_by → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p8_e108" value="source_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p8_t4" target="p8_t0"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p8_e109" value="run_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p8_t3" target="p8_t2"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-10" name="Parcerias e atendimento virtual"><mxGraphModel dx="2600" dy="1910" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1910" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p9_title" value="Esquema relacional — Parcerias e atendimento virtual" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p9_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p9_t0" value="<b>desk_cases</b><hr>FK company_id → investment_company_declarations.id NULL<br>FK organization_id → organizations.id NULL<br>FK submission_id → investment_submissions.id NULL<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t1" value="<b>desk_documents</b><hr>FK case_id → desk_cases.id<br>FK document_id → documents.id<br>FK linked_by → users.id<br>FK request_id → desk_requests.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t2" value="<b>desk_events</b><hr>FK actor_id → users.id<br>FK case_id → desk_cases.id<br>FK request_id → desk_requests.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t3" value="<b>desk_institutional_links</b><hr>FK verified_by → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t4" value="<b>desk_messages</b><hr>FK actor_id → users.id<br>FK request_id → desk_requests.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t5" value="<b>desk_notifications</b><hr>FK event_id → desk_events.id<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t6" value="<b>desk_payments</b><hr>FK document_id → documents.id NULL<br>FK request_id → desk_requests.id<br>FK verified_by → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t7" value="<b>desk_requests</b><hr>FK analyst_id → users.id NULL<br>FK case_id → desk_cases.id<br>FK service_version_id → desk_service_versions.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t8" value="<b>desk_revisions</b><hr>FK request_id → desk_requests.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t9" value="<b>desk_service_versions</b><hr>FK author_id → users.id<br>FK published_by → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t10" value="<b>partnership_documents</b><hr>FK document_id → documents.id<br>FK owner_id → users.id<br>FK room_id → partnership_rooms.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t11" value="<b>partnership_events</b><hr>FK actor_id → users.id<br>FK partnership_id → portal_partnerships.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t12" value="<b>partnership_interests</b><hr>FK organization_id → organizations.id NULL<br>FK partnership_id → portal_partnerships.id<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t13" value="<b>partnership_locations</b><hr>FK geo_location_id → geo_locations.id<br>FK partnership_id → portal_partnerships.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t14" value="<b>partnership_messages</b><hr>FK author_id → users.id<br>FK room_id → partnership_rooms.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t15" value="<b>partnership_milestones</b><hr>FK responsible_id → users.id<br>FK room_id → partnership_rooms.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="1170" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t16" value="<b>partnership_notifications</b><hr>FK event_id → partnership_events.id<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t17" value="<b>partnership_origins</b><hr>FK partnership_id → portal_partnerships.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_t18" value="<b>partnership_rooms</b><hr>FK interest_id → partnership_interests.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="1520" width="570" height="280" as="geometry" /></mxCell><mxCell id="p9_e116" value="interest_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t12" target="p9_t18"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e117" value="room_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t18" target="p9_t14"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e118" value="room_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t18" target="p9_t10"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e119" value="room_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t18" target="p9_t15"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e120" value="event_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t11" target="p9_t16"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e121" value="case_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t0" target="p9_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e122" value="service_version_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t9" target="p9_t7"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e123" value="case_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t0" target="p9_t1"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e124" value="request_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t7" target="p9_t1"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e125" value="case_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t0" target="p9_t2"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e126" value="request_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t7" target="p9_t2"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e127" value="request_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t7" target="p9_t8"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e128" value="request_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t7" target="p9_t4"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e129" value="event_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t2" target="p9_t5"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p9_e130" value="request_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p9_t7" target="p9_t6"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-11" name="Governação e integrações"><mxGraphModel dx="2600" dy="1500" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1500" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p10_title" value="Esquema relacional — Governação e integrações" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p10_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p10_t7" value="<b>audit_events</b><hr>PK id<br>FK actor_user_id → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p10_t8" value="<b>inbox_events</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p10_t9" value="<b>outbox_events</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p10_t10" value="<b>reconciliation_issues</b><hr>PK id<br>FK sync_run_id → sync_runs.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p10_t11" value="<b>sync_runs</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p10_e0" value="sync_run_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p10_t11" target="p10_t10"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram><diagram id="model-12" name="Aplicação e identidade"><mxGraphModel dx="2600" dy="1500" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1500" math="0" shadow="0"><root><mxCell id="0" /><mxCell id="1" parent="0" /><mxCell id="p11_title" value="Esquema relacional — Aplicação e identidade" style="text;html=1;align=left;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#0f172a;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1600" height="40" as="geometry" /></mxCell><mxCell id="p11_note" value="Fonte: migrations e manifestos do repositório. FK entre páginas aparece como referência no cartão; layout não declara relações adicionais." style="text;html=1;align=left;verticalAlign=middle;fontSize=11;fontColor=#475569;" vertex="1" parent="1"><mxGeometry x="30" y="65" width="2200" height="30" as="geometry" /></mxCell><mxCell id="p11_t0" value="<b>cache</b><hr>PK key" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t1" value="<b>cache_locks</b><hr>PK key" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t2" value="<b>consents</b><hr>PK id<br>FK user_id → users.id NULL" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t3" value="<b>failed_jobs</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="120" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t4" value="<b>job_batches</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t5" value="<b>jobs</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t6" value="<b>memberships</b><hr>PK id<br>FK organization_id → organizations.id<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t7" value="<b>organizations</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="470" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t8" value="<b>passkeys</b><hr>PK id<br>FK user_id → users.id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="30" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t9" value="<b>password_reset_tokens</b><hr>PK email" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="650" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t10" value="<b>sessions</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1270" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_t11" value="<b>users</b><hr>PK id" style="rounded=1;whiteSpace=wrap;html=1;align=left;verticalAlign=top;spacing=8;fontSize=12;fillColor=#f8fafc;strokeColor=#64748b;" vertex="1" parent="1"><mxGeometry x="1890" y="820" width="570" height="280" as="geometry" /></mxCell><mxCell id="p11_e131" value="user_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p11_t11" target="p11_t8"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p11_e135" value="user_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p11_t11" target="p11_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p11_e136" value="organization_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p11_t7" target="p11_t6"><mxGeometry relative="1" as="geometry" /></mxCell><mxCell id="p11_e137" value="user_id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERone;startArrow=ERmany;startFill=0;endFill=0;strokeColor=#64748b;fontSize=10;" edge="1" parent="1" source="p11_t11" target="p11_t2"><mxGeometry relative="1" as="geometry" /></mxCell></root></mxGraphModel></diagram></mxfile> |