gateway/modules/.$DEPENDENCY_DIAGRAM.drawio.bkp

326 lines
19 KiB
Text

<mxfile host="app.diagrams.net">
<diagram name="Module Dependencies" id="dependency-diagram">
<mxGraphModel dx="1422" dy="794" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1400" pageHeight="1200" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<!-- Foundation Layer -->
<mxCell id="shared" value="shared/&#xa;(Foundation)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1f5ff;strokeColor=#01579b;strokeWidth=2;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="600" y="100" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="datamodels" value="datamodels/&#xa;(Foundation)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1f5ff;strokeColor=#01579b;strokeWidth=2;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="400" y="100" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="aicore" value="aicore/&#xa;(Infrastructure)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1f5ff;strokeColor=#01579b;strokeWidth=2;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="200" y="100" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="connectors" value="connectors/&#xa;(Infrastructure)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1f5ff;strokeColor=#01579b;strokeWidth=2;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="800" y="100" width="120" height="60" as="geometry" />
</mxCell>
<!-- Data Layer -->
<mxCell id="interfaces" value="interfaces/&#xa;(Data Access)&#xa;✅ No violations" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f3e5f5;strokeColor=#4a148c;strokeWidth=3;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="500" y="250" width="200" height="80" as="geometry" />
</mxCell>
<!-- Business Logic Layer -->
<mxCell id="services" value="services/&#xa;(Business Logic)&#xa;✅ Unidirectional" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e8f5e9;strokeColor=#1b5e20;strokeWidth=2;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="300" y="400" width="200" height="80" as="geometry" />
</mxCell>
<mxCell id="workflows" value="workflows/&#xa;(Business Logic)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e8f5e9;strokeColor=#1b5e20;strokeWidth=2;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="700" y="400" width="200" height="80" as="geometry" />
</mxCell>
<!-- Feature Layer -->
<mxCell id="features" value="features/&#xa;(Features)&#xa;✅ Unidirectional" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff3e0;strokeColor=#e65100;strokeWidth=2;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="500" y="550" width="200" height="80" as="geometry" />
</mxCell>
<!-- API Layer -->
<mxCell id="routes" value="routes/&#xa;(API Layer)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fce4ec;strokeColor=#880e4f;strokeWidth=2;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="300" y="700" width="200" height="80" as="geometry" />
</mxCell>
<mxCell id="security" value="security/&#xa;(Security)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fce4ec;strokeColor=#880e4f;strokeWidth=2;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="700" y="700" width="200" height="80" as="geometry" />
</mxCell>
<!-- Foundation dependencies -->
<mxCell id="edge1" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#01579b" edge="1" parent="1" source="datamodels" target="shared">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="300" as="sourcePoint" />
<mxPoint x="450" y="250" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge2" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#01579b" edge="1" parent="1" source="aicore" target="datamodels">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="300" y="300" as="sourcePoint" />
<mxPoint x="350" y="250" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge3" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#01579b" edge="1" parent="1" source="aicore" target="shared">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="300" y="300" as="sourcePoint" />
<mxPoint x="350" y="250" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge4" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#01579b" edge="1" parent="1" source="connectors" target="datamodels">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="800" y="300" as="sourcePoint" />
<mxPoint x="450" y="250" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge5" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#01579b" edge="1" parent="1" source="connectors" target="shared">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="800" y="300" as="sourcePoint" />
<mxPoint x="650" y="250" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- Interface layer dependencies -->
<mxCell id="edge6" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#4a148c" edge="1" parent="1" source="interfaces" target="aicore">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="500" y="400" as="sourcePoint" />
<mxPoint x="350" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge7" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#4a148c" edge="1" parent="1" source="interfaces" target="connectors">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="600" y="400" as="sourcePoint" />
<mxPoint x="750" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge8" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#4a148c" edge="1" parent="1" source="interfaces" target="datamodels">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="550" y="400" as="sourcePoint" />
<mxPoint x="450" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge9" value="callbackRegistry" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#4a148c;dashed=1" edge="1" parent="1" source="interfaces" target="shared">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="600" y="400" as="sourcePoint" />
<mxPoint x="650" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- Service layer dependencies -->
<mxCell id="edge10" value="✅" style="endArrow=classic;html=1;rounded=0;strokeWidth=3;strokeColor=#1b5e20" edge="1" parent="1" source="services" target="interfaces">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="500" as="sourcePoint" />
<mxPoint x="550" y="450" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge11" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#1b5e20" edge="1" parent="1" source="services" target="aicore">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="350" y="500" as="sourcePoint" />
<mxPoint x="250" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge12" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#1b5e20" edge="1" parent="1" source="services" target="datamodels">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="500" as="sourcePoint" />
<mxPoint x="450" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge13" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#1b5e20" edge="1" parent="1" source="services" target="shared">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="450" y="500" as="sourcePoint" />
<mxPoint x="650" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge14" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#1b5e20" edge="1" parent="1" source="services" target="security">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="500" as="sourcePoint" />
<mxPoint x="800" y="650" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- Workflow layer dependencies -->
<mxCell id="edge15" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#1b5e20" edge="1" parent="1" source="workflows" target="aicore">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="750" y="500" as="sourcePoint" />
<mxPoint x="250" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge16" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#1b5e20" edge="1" parent="1" source="workflows" target="datamodels">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="800" y="500" as="sourcePoint" />
<mxPoint x="450" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge17" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#1b5e20" edge="1" parent="1" source="workflows" target="services">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="750" y="500" as="sourcePoint" />
<mxPoint x="450" y="450" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge18" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#1b5e20" edge="1" parent="1" source="workflows" target="shared">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="800" y="500" as="sourcePoint" />
<mxPoint x="650" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- Feature layer dependencies -->
<mxCell id="edge19" value="✅" style="endArrow=classic;html=1;rounded=0;strokeWidth=3;strokeColor=#e65100" edge="1" parent="1" source="features" target="interfaces">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="550" y="600" as="sourcePoint" />
<mxPoint x="600" y="450" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge20" value="✅" style="endArrow=classic;html=1;rounded=0;strokeWidth=3;strokeColor=#e65100" edge="1" parent="1" source="features" target="services">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="550" y="600" as="sourcePoint" />
<mxPoint x="450" y="500" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge21" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#e65100" edge="1" parent="1" source="features" target="datamodels">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="550" y="600" as="sourcePoint" />
<mxPoint x="450" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge22" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#e65100" edge="1" parent="1" source="features" target="workflows">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="600" y="600" as="sourcePoint" />
<mxPoint x="750" y="500" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge23" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#e65100" edge="1" parent="1" source="features" target="shared">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="600" y="600" as="sourcePoint" />
<mxPoint x="650" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- Routes dependencies -->
<mxCell id="edge24" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#880e4f" edge="1" parent="1" source="routes" target="interfaces">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="800" as="sourcePoint" />
<mxPoint x="550" y="450" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge25" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#880e4f" edge="1" parent="1" source="routes" target="features">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="800" as="sourcePoint" />
<mxPoint x="550" y="600" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge26" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#880e4f" edge="1" parent="1" source="routes" target="services">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="800" as="sourcePoint" />
<mxPoint x="450" y="500" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge27" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#880e4f" edge="1" parent="1" source="routes" target="security">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="500" y="800" as="sourcePoint" />
<mxPoint x="800" y="700" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge28" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#880e4f" edge="1" parent="1" source="routes" target="datamodels">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="800" as="sourcePoint" />
<mxPoint x="450" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge29" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#880e4f" edge="1" parent="1" source="routes" target="shared">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="450" y="800" as="sourcePoint" />
<mxPoint x="650" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- Security dependencies -->
<mxCell id="edge30" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#880e4f" edge="1" parent="1" source="security" target="interfaces">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="800" y="800" as="sourcePoint" />
<mxPoint x="600" y="450" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge31" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#880e4f" edge="1" parent="1" source="security" target="datamodels">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="800" y="800" as="sourcePoint" />
<mxPoint x="450" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="edge32" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#880e4f" edge="1" parent="1" source="security" target="shared">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="800" y="800" as="sourcePoint" />
<mxPoint x="650" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- Legend -->
<mxCell id="legend" value="Legend" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=14" vertex="1" parent="1">
<mxGeometry x="1000" y="100" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="legend1" value="Foundation Layer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1f5ff;strokeColor=#01579b;strokeWidth=2" vertex="1" parent="1">
<mxGeometry x="1000" y="140" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="legend2" value="Data Access Layer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f3e5f5;strokeColor=#4a148c;strokeWidth=2" vertex="1" parent="1">
<mxGeometry x="1000" y="180" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="legend3" value="Business Logic Layer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e8f5e9;strokeColor=#1b5e20;strokeWidth=2" vertex="1" parent="1">
<mxGeometry x="1000" y="220" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="legend4" value="Feature Layer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff3e0;strokeColor=#e65100;strokeWidth=2" vertex="1" parent="1">
<mxGeometry x="1000" y="260" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="legend5" value="API Layer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fce4ec;strokeColor=#880e4f;strokeWidth=2" vertex="1" parent="1">
<mxGeometry x="1000" y="300" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="legend6" value="✅ Correct Direction" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0" vertex="1" parent="1">
<mxGeometry x="1000" y="350" width="150" height="20" as="geometry" />
</mxCell>
<mxCell id="legend7" value="--- Callback Registry" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;dashed=1" vertex="1" parent="1">
<mxGeometry x="1000" y="380" width="150" height="20" as="geometry" />
</mxCell>
<!-- Status Box -->
<mxCell id="status" value="✅ ZERO VIOLATIONS&#xa;Perfect Architectural Compliance" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#c8e6c9;strokeColor=#2e7d32;strokeWidth=3;fontStyle=1;fontSize=12" vertex="1" parent="1">
<mxGeometry x="1000" y="450" width="200" height="60" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>