Files
conti-docs/Architecture-Diagram/architecture-diagram.drawio
T

1313 lines
121 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<mxfile host="Electron" agent="Codex" compressed="false" pages="5">
<diagram id="system-overview" name="System Overview">
<mxGraphModel dx="2357" dy="1802" grid="0" gridSize="8" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="2384" pageHeight="1504" background="#FFFFFF" math="1" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="KMS15cxpBdj745l8hprU-158" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="1450" width="2336" x="24" y="-58" as="geometry" />
</mxCell>
<mxCell id="102" parent="1" style="rounded=0;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#cbd5e1;strokeWidth=1.2;" value="" vertex="1">
<mxGeometry height="1248" width="2256" x="64" y="128" as="geometry" />
</mxCell>
<mxCell id="103" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#e0f2fe;strokeColor=#7dd3fc;strokeWidth=1.5;" value="" vertex="1">
<mxGeometry height="928" width="416" x="112" y="184" as="geometry" />
</mxCell>
<mxCell id="104" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;" value="" vertex="1">
<mxGeometry height="928" width="520" x="560" y="184" as="geometry" />
</mxCell>
<mxCell id="105" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#dcfce7;strokeColor=#22c55e;strokeWidth=1.5;" value="" vertex="1">
<mxGeometry height="928" width="520" x="1112" y="184" as="geometry" />
</mxCell>
<mxCell id="106" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#ffedd5;strokeColor=#f97316;strokeWidth=1.5;" value="" vertex="1">
<mxGeometry height="928" width="608" x="1664" y="184" as="geometry" />
</mxCell>
<mxCell id="107" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=26;fontStyle=1;fontColor=#0f172a;" value="Mobile App" vertex="1">
<mxGeometry height="28" width="192" x="224" y="206" as="geometry" />
</mxCell>
<mxCell id="108" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=28;fontStyle=1;fontColor=#1d4ed8;" value="App Backend" vertex="1">
<mxGeometry height="28" width="176" x="732" y="206" as="geometry" />
</mxCell>
<mxCell id="109" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#15803d;" value="Mini Program Backend Domain" vertex="1">
<mxGeometry height="28" width="360" x="1192" y="206" as="geometry" />
</mxCell>
<mxCell id="110" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=26;fontStyle=1;fontColor=#c2410c;" value="F6 Supplier Domain" vertex="1">
<mxGeometry height="28" width="200" x="1868" y="206" as="geometry" />
</mxCell>
<mxCell id="111" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#0f172a;" value="App Shell and Entry" vertex="1">
<mxGeometry height="24" width="220" x="144" y="258" as="geometry" />
</mxCell>
<mxCell id="112" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#1d4ed8;" value="Context and Control" vertex="1">
<mxGeometry height="24" width="220" x="592" y="258" as="geometry" />
</mxCell>
<mxCell id="113" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#15803d;" value="Retained Business Systems" vertex="1">
<mxGeometry height="24" width="240" x="1144" y="258" as="geometry" />
</mxCell>
<mxCell id="114" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#c2410c;" value="Supplier Pages and APIs" vertex="1">
<mxGeometry height="24" width="240" x="1696" y="258" as="geometry" />
</mxCell>
<mxCell id="115" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#38bdf8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Login / Agreement / App Shell&#xa;Single mobile entry for store users" vertex="1">
<mxGeometry height="96" width="352" x="144" y="296" as="geometry" />
</mxCell>
<mxCell id="116" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#38bdf8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="WebView + JSBridge&#xa;Embedded WebView only for F6 pages" vertex="1">
<mxGeometry height="88" width="352" x="144" y="424" as="geometry" />
</mxCell>
<mxCell id="117" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#38bdf8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Native Capabilities&lt;br&gt;Scan, camera, upload, Bluetooth, Notifications, Payment" vertex="1">
<mxGeometry height="88" width="352" x="144" y="544" as="geometry" />
</mxCell>
<mxCell id="118" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#38bdf8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Store-Aware Session Holder&#xa;Keeps current store and role locally" vertex="1">
<mxGeometry height="88" width="352" x="144" y="664" as="geometry" />
</mxCell>
<mxCell id="119" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#2563eb;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Auth and Token Center&#xa;Login, refresh, logout, identity trust" vertex="1">
<mxGeometry height="96" width="456" x="592" y="296" as="geometry" />
</mxCell>
<mxCell id="120" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#2563eb;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Store Context + Menu + Permission + Config&#xa;Owns current store, role scope, menu baseline" vertex="1">
<mxGeometry height="96" width="456" x="592" y="424" as="geometry" />
</mxCell>
<mxCell id="121" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#2563eb;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Workbench Aggregation&#xa;Builds home tiles, reminders, and summary views" vertex="1">
<mxGeometry height="88" width="456" x="592" y="552" as="geometry" />
</mxCell>
<mxCell id="122" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#2563eb;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Business Orchestration&#xa;Normalizes order, procurement, and workflow context" vertex="1">
<mxGeometry height="88" width="456" x="592" y="672" as="geometry" />
</mxCell>
<mxCell id="123" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#ea580c;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="WebView Ticket and Signing Entry&#xa;Prepares supplier session and trace context" vertex="1">
<mxGeometry height="88" width="456" x="592" y="792" as="geometry" />
</mxCell>
<mxCell id="124" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#22c55e;strokeWidth=1.5;fontSize=20;fontStyle=1;fontColor=#1e293b;" value="O2O" vertex="1">
<mxGeometry height="72" width="168" x="1160" y="316" as="geometry" />
</mxCell>
<mxCell id="125" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#22c55e;strokeWidth=1.5;fontSize=20;fontStyle=1;fontColor=#1e293b;" value="延保" vertex="1">
<mxGeometry height="72" width="168" x="1392" y="316" as="geometry" />
</mxCell>
<mxCell id="126" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#22c55e;strokeWidth=1.5;fontSize=20;fontStyle=1;fontColor=#1e293b;" value="马上下单" vertex="1">
<mxGeometry height="72" width="168" x="1160" y="420" as="geometry" />
</mxCell>
<mxCell id="127" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#22c55e;strokeWidth=1.5;fontSize=20;fontStyle=1;fontColor=#1e293b;" value="ROOS" vertex="1">
<mxGeometry height="72" width="168" x="1392" y="420" as="geometry" />
</mxCell>
<mxCell id="128" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#f0fdf4;strokeColor=#86efac;strokeWidth=1.4;fontSize=20;fontColor=#166534;fontStyle=1" value="Retained source systems&#xa;Still own historical business data and workflows" vertex="1">
<mxGeometry height="96" width="400" x="1160" y="548" as="geometry" />
</mxCell>
<mxCell id="130" parent="1" style="shape=document;boundedLbl=1;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#f97316;strokeWidth=1.5;fontSize=20;fontStyle=1;fontColor=#1e293b;" value="F6 WebView Pages" vertex="1">
<mxGeometry height="88" width="224" x="1712" y="308" as="geometry" />
</mxCell>
<mxCell id="131" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#f97316;strokeWidth=1.5;fontSize=20;fontStyle=1;fontColor=#1e293b;" value="F6 Capability APIs" vertex="1">
<mxGeometry height="88" width="224" x="1984" y="308" as="geometry" />
</mxCell>
<mxCell id="134" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#f97316;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="API examples&#xa;Procurement, activity, inventory sync" vertex="1">
<mxGeometry height="88" width="224" x="1984" y="564" as="geometry" />
</mxCell>
<mxCell id="135" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#cbd5e1;strokeWidth=1.2;" value="" vertex="1">
<mxGeometry height="184" width="2096" x="112" y="1144" as="geometry" />
</mxCell>
<mxCell id="136" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=20;fontStyle=1;fontColor=#334155;" value="External Services" vertex="1">
<mxGeometry height="24" width="180" x="144" y="1168" as="geometry" />
</mxCell>
<mxCell id="137" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=20;fontStyle=1;fontColor=#334155;" value="Governance Rules" vertex="1">
<mxGeometry height="24" width="180" x="1160" y="1168" as="geometry" />
</mxCell>
<mxCell id="138" parent="1" style="ellipse;shape=cloud;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.4;fontSize=16;fontColor=#1e293b;" value="SMS" vertex="1">
<mxGeometry height="72" width="176" x="152" y="1212" as="geometry" />
</mxCell>
<mxCell id="139" parent="1" style="ellipse;shape=cloud;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.4;fontSize=16;fontColor=#1e293b;" value="Marketing / CRM" vertex="1">
<mxGeometry height="72" width="224" x="368" y="1212" as="geometry" />
</mxCell>
<mxCell id="140" parent="1" style="ellipse;shape=cloud;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.4;fontSize=16;fontColor=#1e293b;" value="WeCom" vertex="1">
<mxGeometry height="72" width="176" x="632" y="1212" as="geometry" />
</mxCell>
<mxCell id="141" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#2563eb;strokeWidth=1.5;fontSize=16;fontColor=#1e293b;" value="App -&gt; App Backend is primary" vertex="1">
<mxGeometry height="72" width="224" x="1160" y="1212" as="geometry" />
</mxCell>
<mxCell id="142" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#f97316;strokeWidth=1.5;fontSize=16;fontColor=#1e293b;" value="App -&gt; F6 only in Embedded WebView" vertex="1">
<mxGeometry height="72" width="224" x="1416" y="1212" as="geometry" />
</mxCell>
<mxCell id="143" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#f97316;strokeWidth=1.5;fontSize=16;fontColor=#1e293b;" value="F6 APIs go through Adapter" vertex="1">
<mxGeometry height="72" width="224" x="1672" y="1212" as="geometry" />
</mxCell>
<mxCell id="144" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#dc2626;strokeWidth=1.5;fontSize=16;fontColor=#1e293b;" value="Mini direct access is legacy-only" vertex="1">
<mxGeometry height="72" width="248" x="1928" y="1212" as="geometry" />
</mxCell>
<mxCell id="145" edge="1" parent="1" source="115" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563eb;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="119" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="154" connectable="0" parent="145" style="edgeLabel;html=1;align=center;verticalAlign=middle;fontSize=13;fontColor=#1d4ed8;" value="primary route" vertex="1">
<mxGeometry relative="1" x="0.5" as="geometry">
<mxPoint y="-14" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="146" edge="1" parent="1" source="118" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563eb;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="120" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="552" y="708" />
<mxPoint x="552" y="472" />
</Array>
<mxPoint x="528" y="691.0000000000002" as="sourcePoint" />
<mxPoint x="852" y="525" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="155" connectable="0" parent="146" style="edgeLabel;html=1;align=center;verticalAlign=middle;fontSize=13;fontColor=#1d4ed8;" value="primary route" vertex="1">
<mxGeometry relative="1" x="0.5" as="geometry">
<mxPoint y="-14" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="147" edge="1" parent="1" source="121" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#64748b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="124" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="820" y="536" />
<mxPoint x="1352" y="536" />
<mxPoint x="1352" y="352" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="156" connectable="0" parent="147" style="edgeLabel;html=1;align=center;verticalAlign=middle;fontSize=13;fontColor=#64748b;" value="aggregated call" vertex="1">
<mxGeometry relative="1" x="0.5" as="geometry">
<mxPoint y="-14" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="148" edge="1" parent="1" source="121" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#64748b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="125" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="820" y="536" />
<mxPoint x="1376" y="536" />
<mxPoint x="1376" y="352" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="149" edge="1" parent="1" source="122" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#64748b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="126" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1120" y="716" />
<mxPoint x="1120" y="456" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="150" edge="1" parent="1" source="122" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#64748b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="127" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="820" y="662" />
<mxPoint x="1616" y="662" />
<mxPoint x="1616" y="456" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="151" edge="1" parent="1" source="123" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#ea580c;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="130" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1685" y="836" />
<mxPoint x="1685" y="352" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="157" connectable="0" parent="151" style="edgeLabel;html=1;align=center;verticalAlign=middle;fontSize=13;fontColor=#ea580c;" value="embedded WebView" vertex="1">
<mxGeometry relative="1" x="0.5" as="geometry">
<mxPoint y="-14" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="152" edge="1" parent="1" source="122" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#c2410c;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="131" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="820" y="784" />
<mxPoint x="2240" y="784" />
<mxPoint x="2240" y="352" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="158" connectable="0" parent="152" style="edgeLabel;html=1;align=center;verticalAlign=middle;fontSize=13;fontColor=#c2410c;" value="adapter call" vertex="1">
<mxGeometry relative="1" x="0.5" as="geometry">
<mxPoint y="-14" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="nW4BhG50B0pjCwhF13_z-158" parent="1" style="text;html=1;strokeColor=none;fillColor=#D5E8D4;align=left;verticalAlign=middle;fontSize=19;fontColor=#374151;spacingTop=8;spacingLeft=10;labelBorderColor=none;" value="Version: v0.9&lt;br&gt;Date: 2026-06-16&lt;div&gt;Page:&amp;nbsp;System Overview&lt;/div&gt;&lt;div&gt;Author&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(55, 65, 81), rgb(174, 183, 197));&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(55, 65, 81), rgb(174, 183, 197));&quot;&gt;Zhao, Guangfei&lt;/span&gt;&lt;/div&gt;" vertex="1">
<mxGeometry height="104" width="452" x="1893" y="-46" as="geometry" />
</mxCell>
<mxCell id="oieIphGHzJsM6ZUIHDl_-158" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="132" width="1007" x="24" y="-57" as="geometry" />
</mxCell>
<mxCell id="101" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=16;fontColor=#475569;" value="Capability ownership view: the app uses one main backend domain, while Mini backends and F6 stay independent." vertex="1">
<mxGeometry height="24" width="980" x="40" y="14" as="geometry" />
</mxCell>
<mxCell id="100" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=32;fontStyle=1;fontColor=#0f172a;" value="Continental Retail APP System Overview" vertex="1">
<mxGeometry height="40" width="760" x="40" y="-42" as="geometry" />
</mxCell>
<mxCell id="129" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#22c55e;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Representative examples&#xa;Home data, warranty lookup, order support, rebate data" vertex="1">
<mxGeometry height="88" width="400" x="1160" y="676" as="geometry" />
</mxCell>
<mxCell id="132" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffedd5;strokeColor=#fdba74;strokeWidth=1.4;fontSize=16;fontColor=#9a3412;" value="Procurement / Promotion / ERP&#xa;Supplier-owned capabilities stay outside the main backend" vertex="1">
<mxGeometry height="96" width="496" x="1712" y="436" as="geometry" />
</mxCell>
<mxCell id="133" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#f97316;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="WebView examples&#xa;Sales, scan, settlement, inbound" vertex="1">
<mxGeometry height="88" width="224" x="1712" y="564" as="geometry" />
</mxCell>
<mxCell id="GyYMq7JOHhVq3Sw2kzow-158" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#38bdf8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Flutter WebView Plugin, Native Platform Core" vertex="1">
<mxGeometry height="88" width="352" x="152" y="792" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="system-architecture" name="System Architecture">
<mxGraphModel dx="1414" dy="1241" grid="0" gridSize="8" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="3700" pageHeight="1800" background="#FFFFFF" math="1" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="D7Sz99mfy6qfVyFed3Xx-274" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="2004" width="3536" x="16" y="-195" as="geometry" />
</mxCell>
<mxCell id="202" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#e2e8f0;strokeWidth=1;" value="a" vertex="1">
<mxGeometry height="560" width="560" x="96" y="162" as="geometry" />
</mxCell>
<mxCell id="203" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#e2e8f0;strokeWidth=1;" value="" vertex="1">
<mxGeometry height="560" width="540" x="736" y="160" as="geometry" />
</mxCell>
<mxCell id="204" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#e2e8f0;strokeWidth=1;" value="" vertex="1">
<mxGeometry height="560" width="980" x="1356" y="160" as="geometry" />
</mxCell>
<mxCell id="205" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#e2e8f0;strokeWidth=1;" value="" vertex="1">
<mxGeometry height="560" width="440" x="2416" y="160" as="geometry" />
</mxCell>
<mxCell id="206" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#e2e8f0;strokeWidth=1;" value="" vertex="1">
<mxGeometry height="320" width="1212" x="1356" y="780" as="geometry" />
</mxCell>
<mxCell id="207" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#e2e8f0;strokeWidth=1;" value="" vertex="1">
<mxGeometry height="560" width="560" x="2936" y="160" as="geometry" />
</mxCell>
<mxCell id="208" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#e2e8f0;strokeWidth=1;" value="" vertex="1">
<mxGeometry height="360" width="560" x="2936" y="780" as="geometry" />
</mxCell>
<mxCell id="209" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#e2e8f0;strokeWidth=1;" value="" vertex="1">
<mxGeometry height="472" width="560" x="2936" y="1200" as="geometry" />
</mxCell>
<mxCell id="210" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#1e293b;" value="Client Tier" vertex="1">
<mxGeometry height="30" width="260" x="128" y="188" as="geometry" />
</mxCell>
<mxCell id="211" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#1e293b;" value="Access &amp; Security" vertex="1">
<mxGeometry height="30" width="260" x="768" y="188" as="geometry" />
</mxCell>
<mxCell id="212" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#1e293b;" value="App Backend" vertex="1">
<mxGeometry height="30" width="260" x="1388" y="188" as="geometry" />
</mxCell>
<mxCell id="213" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#1e293b;" value="Integration Layer" vertex="1">
<mxGeometry height="30" width="260" x="2448" y="188" as="geometry" />
</mxCell>
<mxCell id="214" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#1e293b;" value="Mini Program Backend" vertex="1">
<mxGeometry height="30" width="320" x="1388" y="808" as="geometry" />
</mxCell>
<mxCell id="215" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#1e293b;" value="F6 Supplier Domain" vertex="1">
<mxGeometry height="30" width="280" x="2968" y="188" as="geometry" />
</mxCell>
<mxCell id="216" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#1e293b;" value="External Services" vertex="1">
<mxGeometry height="30" width="260" x="2968" y="808" as="geometry" />
</mxCell>
<mxCell id="217" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#1e293b;" value="Cross-Cutting" vertex="1">
<mxGeometry height="30" width="260" x="2968" y="1228" as="geometry" />
</mxCell>
<mxCell id="218" parent="1" style="ellipse;html=1;whiteSpace=wrap;fillColor=#e0f2fe;strokeColor=#0284c7;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Store User Persona" vertex="1">
<mxGeometry height="100" width="220" x="128" y="260" as="geometry" />
</mxCell>
<mxCell id="219" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#bfdbfe;strokeColor=#1d4ed8;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Mobile App&lt;br&gt;Native entry" vertex="1">
<mxGeometry height="100" width="220" x="384" y="260" as="geometry" />
</mxCell>
<mxCell id="220" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Native Capabilities&#xa;Scan / camera / upload / Bluetooth" vertex="1">
<mxGeometry height="100" width="220" x="128" y="460" as="geometry" />
</mxCell>
<mxCell id="pZ8nqr70MQB4xoW7GgT7-277" edge="1" parent="1" source="220" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.591;exitY=1.02;exitDx=0;exitDy=0;exitPerimeter=0;" target="pZ8nqr70MQB4xoW7GgT7-276" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="221" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#fed7aa;strokeColor=#ea580c;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="WebView + JSBridge&#xa;Embedded WebView container" vertex="1">
<mxGeometry height="100" width="220" x="384" y="460" as="geometry" />
</mxCell>
<mxCell id="222" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#e0e7ff;strokeColor=#4338ca;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="API Gateway&#xa;HTTPS / TLS / routing" vertex="1">
<mxGeometry height="100" width="220" x="768" y="260" as="geometry" />
</mxCell>
<mxCell id="223" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#e0e7ff;strokeColor=#4338ca;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="JWT / Auth&#xa;Token issue and refresh" vertex="1">
<mxGeometry height="100" width="220" x="1024" y="260" as="geometry" />
</mxCell>
<mxCell id="224" parent="1" style="rhombus;html=1;whiteSpace=wrap;fillColor=#fef3c7;strokeColor=#d97706;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="WebView Allowlist&#xa;Supplier domain control" vertex="1">
<mxGeometry height="120" width="220" x="896" y="460" as="geometry" />
</mxCell>
<mxCell id="225" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Identity &amp; Store Center&#xa;IAM, store, role, menu" vertex="1">
<mxGeometry height="110" width="260" x="1400" y="460" as="geometry" />
</mxCell>
<mxCell id="226" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#bfdbfe;strokeColor=#1d4ed8;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="BFF Orchestration&#xa;Unified response and normalization" vertex="1">
<mxGeometry height="110" width="260" x="1728" y="260" as="geometry" />
</mxCell>
<mxCell id="227" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Workbench Aggregation" vertex="1">
<mxGeometry height="110" width="260" x="1728" y="460" as="geometry" />
</mxCell>
<mxCell id="228" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#fed7aa;strokeColor=#ea580c;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="WebView Ticket Center&#xa;Signed entry and trace handoff" vertex="1">
<mxGeometry height="110" width="260" x="2056" y="460" as="geometry" />
</mxCell>
<mxCell id="229" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#fdba74;strokeColor=#c2410c;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="F6 Integration Adapter&lt;br&gt;Ticket exchange" vertex="1">
<mxGeometry height="110" width="260" x="2460" y="260" as="geometry" />
</mxCell>
<mxCell id="230" parent="1" style="shape=parallelogram;perimeter=parallelogramPerimeter;fixedSize=1;html=1;whiteSpace=wrap;fillColor=#fed7aa;strokeColor=#ea580c;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Timeout / Retry" vertex="1">
<mxGeometry height="110" width="260" x="2460" y="480" as="geometry" />
</mxCell>
<mxCell id="231" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#d1fae5;strokeColor=#059669;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="O2O Backend" vertex="1">
<mxGeometry height="100" width="220" x="1400" y="900" as="geometry" />
</mxCell>
<mxCell id="232" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#d1fae5;strokeColor=#059669;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Warranty Backend" vertex="1">
<mxGeometry height="100" width="220" x="1680" y="900" as="geometry" />
</mxCell>
<mxCell id="233" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#d1fae5;strokeColor=#059669;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="&lt;font&gt;马上下单&lt;/font&gt;&amp;nbsp;Backend" vertex="1">
<mxGeometry height="100" width="220" x="1960" y="900" as="geometry" />
</mxCell>
<mxCell id="234" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#d1fae5;strokeColor=#059669;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="ROOS Backend" vertex="1">
<mxGeometry height="100" width="220" x="2240" y="900" as="geometry" />
</mxCell>
<mxCell id="235" parent="1" style="shape=document;boundedLbl=1;html=1;whiteSpace=wrap;fillColor=#fef3c7;strokeColor=#d97706;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="F6 WebView Pages&#xa;Sales, scan, settlement, inbound" vertex="1">
<mxGeometry height="110" width="220" x="2992" y="260" as="geometry" />
</mxCell>
<mxCell id="236" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#fef3c7;strokeColor=#d97706;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="F6 Capability APIs&#xa;Procurement / promotion / ERP" vertex="1">
<mxGeometry height="110" width="220" x="2992" y="480" as="geometry" />
</mxCell>
<mxCell id="237" parent="1" style="ellipse;shape=cloud;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="SMS" vertex="1">
<mxGeometry height="100" width="180" x="2992" y="860" as="geometry" />
</mxCell>
<mxCell id="238" parent="1" style="ellipse;shape=cloud;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Marketing / CRM" vertex="1">
<mxGeometry height="100" width="220" x="3224" y="860" as="geometry" />
</mxCell>
<mxCell id="239" parent="1" style="ellipse;shape=cloud;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="WeCom" vertex="1">
<mxGeometry height="100" width="180" x="2992" y="1000" as="geometry" />
</mxCell>
<mxCell id="240" parent="1" style="shape=document;boundedLbl=1;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#cbd5e1;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Observability&#xa;Trace ID / logs / metrics" vertex="1">
<mxGeometry height="100" width="220" x="2992" y="1280" as="geometry" />
</mxCell>
<mxCell id="241" parent="1" style="shape=document;boundedLbl=1;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#cbd5e1;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Audit / Security&#xa;Masking and evidence" vertex="1">
<mxGeometry height="100" width="220" x="2992" y="1410" as="geometry" />
</mxCell>
<mxCell id="242" parent="1" style="shape=document;boundedLbl=1;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#cbd5e1;strokeWidth=1.5;fontSize=18;fontColor=#1e293b;" value="Config Center&#xa;Menu, switches, WebView entry" vertex="1">
<mxGeometry height="100" width="220" x="2992" y="1540" as="geometry" />
</mxCell>
<mxCell id="248" edge="1" parent="1" source="218" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#94a3b8;strokeWidth=1;endArrow=diamond;endFill=1;jumpStyle=arc;jumpSize=8;" target="219" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="249" edge="1" parent="1" source="219" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;endArrow=diamond;endFill=1;jumpStyle=arc;jumpSize=8;" target="220" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="494" y="410" />
<mxPoint x="238" y="410" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="250" edge="1" parent="1" source="219" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;endArrow=diamond;endFill=1;jumpStyle=arc;jumpSize=8;" target="221" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="494" y="410" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="251" edge="1" parent="1" source="219" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563eb;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="222" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="700" y="310" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="252" edge="1" parent="1" source="222" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;endArrow=diamond;endFill=1;jumpStyle=arc;jumpSize=8;" target="223" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="253" edge="1" parent="1" source="222" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563eb;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="226" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="878" y="224" />
<mxPoint x="1320" y="224" />
<mxPoint x="1320" y="288" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="254" edge="1" parent="1" source="223" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563eb;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="225" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1134" y="420" />
<mxPoint x="1530" y="420" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="255" edge="1" parent="1" source="225" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;endArrow=diamond;endFill=1;exitX=1;exitY=0.32;exitDx=0;exitDy=0;entryX=0;entryY=0.32;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;" target="226" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1695" y="515" />
<mxPoint x="1695" y="315" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="256" edge="1" parent="1" source="227" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;endArrow=diamond;endFill=1;exitX=0;exitY=0.68;exitDx=0;exitDy=0;entryX=0.381;entryY=1.028;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;entryPerimeter=0;" target="226" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1712" y="535" />
<mxPoint x="1712" y="420" />
<mxPoint x="1827" y="420" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="257" edge="1" parent="1" source="226" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;endArrow=diamond;endFill=1;exitX=1;exitY=0.32;exitDx=0;exitDy=0;entryX=0;entryY=0.32;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;" target="228" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="2020" y="315" />
<mxPoint x="2186" y="420" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="258" edge="1" parent="1" source="228" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#ea580c;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="221" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="2186" y="130" />
<mxPoint x="648" y="130" />
<mxPoint x="648" y="510" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="259" edge="1" parent="1" source="221" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#ea580c;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="224" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="700" y="520" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="260" edge="1" parent="1" source="224" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#ea580c;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="235" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1280" y="640" />
<mxPoint x="2860" y="640" />
<mxPoint x="2860" y="315" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="261" edge="1" parent="1" source="226" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#c2410c;strokeWidth=1;endArrow=block;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;" target="229" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="262" edge="1" parent="1" source="229" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;endArrow=diamond;endFill=1;jumpStyle=arc;jumpSize=8;" target="230" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="263" edge="1" parent="1" source="230" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#ea580c;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="236" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="2860" y="535" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="264" edge="1" parent="1" source="226" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;exitDx=0;exitDy=0;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;" target="231" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1320" y="315" />
<mxPoint x="1320" y="850" />
<mxPoint x="1510" y="850" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="265" edge="1" parent="1" source="226" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;exitDx=0;exitDy=0;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;" target="232" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1290" y="335" />
<mxPoint x="1290" y="870" />
<mxPoint x="1790" y="870" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="266" edge="1" parent="1" source="226" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;exitDx=0;exitDy=0;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;" target="233" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="2350" y="315" />
<mxPoint x="2350" y="850" />
<mxPoint x="2070" y="850" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="267" edge="1" parent="1" source="226" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;exitDx=0;exitDy=0;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;" target="234" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="2380" y="335" />
<mxPoint x="2380" y="870" />
<mxPoint x="2350" y="870" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="268" edge="1" parent="1" source="219" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#dc2626;strokeWidth=1;dashed=1;dashPattern=2 2;endArrow=open;endFill=0;jumpStyle=arc;jumpSize=8;" target="231" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="64" y="310" />
<mxPoint x="64" y="950" />
<mxPoint x="1400" y="950" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="269" edge="1" parent="1" source="223" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="237" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1134" y="112" />
<mxPoint x="2880" y="112" />
<mxPoint x="2880" y="910" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="270" edge="1" parent="1" source="226" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="238" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1858" y="120" />
<mxPoint x="2860" y="120" />
<mxPoint x="2860" y="976" />
<mxPoint x="3334" y="976" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="271" edge="1" parent="1" source="226" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1e293b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;" target="239" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1888" y="100" />
<mxPoint x="2890" y="100" />
<mxPoint x="2890" y="1050" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="272" edge="1" parent="1" source="226" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#94a3b8;strokeWidth=1;dashed=1;dashPattern=2 2;endArrow=open;endFill=0;exitDx=0;exitDy=0;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;" target="240" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1920" y="140" />
<mxPoint x="2860" y="140" />
<mxPoint x="2860" y="1330" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="273" edge="1" parent="1" source="225" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#94a3b8;strokeWidth=1;dashed=1;dashPattern=2 2;endArrow=open;endFill=0;exitDx=0;exitDy=0;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;" target="241" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1320" y="515" />
<mxPoint x="1320" y="1150" />
<mxPoint x="2860" y="1150" />
<mxPoint x="2860" y="1460" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="wfu_O4T6b8RaecZiG8eC-274" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="154" width="909" x="79" y="1635" as="geometry" />
</mxCell>
<mxCell id="274" edge="1" parent="1" source="225" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#94a3b8;strokeWidth=1;dashed=1;dashPattern=2 2;endArrow=open;endFill=0;exitDx=0;exitDy=0;entryDx=0;entryDy=0;jumpStyle=arc;jumpSize=8;" target="242" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1300" y="535" />
<mxPoint x="1300" y="1180" />
<mxPoint x="2860" y="1180" />
<mxPoint x="2860" y="1590" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="HXPNQZuE4xZoUuxGb5Rw-274" parent="1" style="text;html=1;strokeColor=none;fillColor=#D5E8D4;align=left;verticalAlign=middle;fontSize=19;fontColor=#374151;spacingTop=8;spacingLeft=10;labelBorderColor=none;" value="Version: v0.9&lt;br&gt;Date: 2026-06-16&lt;div&gt;Page:&amp;nbsp;System Architecture&lt;/div&gt;&lt;div&gt;AuthorZhao, Guangfei&lt;/div&gt;" vertex="1">
<mxGeometry height="104" width="452" x="3000" y="-154" as="geometry" />
</mxCell>
<mxCell id="243" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#0f172a;" value="Legend" vertex="1">
<mxGeometry height="28" width="140" x="96" y="1670" as="geometry" />
</mxCell>
<mxCell id="244" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=16;fontColor=#1f2937;" value="Primary App -&gt; App Backend route" vertex="1">
<mxGeometry height="26" width="420" x="200" y="1704" as="geometry" />
</mxCell>
<mxCell id="245" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=16;fontColor=#1f2937;" value="Embedded WebView or F6 exception path" vertex="1">
<mxGeometry height="26" width="420" x="200" y="1734" as="geometry" />
</mxCell>
<mxCell id="246" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=16;fontColor=#1f2937;" value="Aggregation or external calls" vertex="1">
<mxGeometry height="26" width="360" x="760" y="1704" as="geometry" />
</mxCell>
<mxCell id="247" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=16;fontColor=#1f2937;" value="Legacy compatibility only" vertex="1">
<mxGeometry height="26" width="360" x="760" y="1734" as="geometry" />
</mxCell>
<mxCell id="248a" parent="1" style="shape=line;html=1;strokeColor=#2563eb;strokeWidth=1.5;" value="" vertex="1">
<mxGeometry height="10" width="80" x="96" y="1712" as="geometry" />
</mxCell>
<mxCell id="248b" parent="1" style="shape=line;html=1;strokeColor=#ea580c;strokeWidth=1.5;dashed=1;dashPattern=6 4;" value="" vertex="1">
<mxGeometry height="10" width="80" x="96" y="1742" as="geometry" />
</mxCell>
<mxCell id="248c" parent="1" style="shape=line;html=1;strokeColor=#64748b;strokeWidth=1.5;dashed=1;dashPattern=6 4;" value="" vertex="1">
<mxGeometry height="10" width="80" x="650" y="1712" as="geometry" />
</mxCell>
<mxCell id="248d" parent="1" style="shape=line;html=1;strokeColor=#dc2626;strokeWidth=1.5;dashed=1;dashPattern=2 2;" value="" vertex="1">
<mxGeometry height="10" width="80" x="650" y="1742" as="geometry" />
</mxCell>
<mxCell id="Ve0e3pzQLt7zSAY_3PPg-274" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="132" width="1098" x="16" y="-195" as="geometry" />
</mxCell>
<mxCell id="200" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=36;fontStyle=1;fontColor=#0f172a;" value="Continental Retail APP System Architecture" vertex="1">
<mxGeometry height="48" width="1100" x="47" y="-157" as="geometry" />
</mxCell>
<mxCell id="201" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontColor=#475569;" value="Reference review page: layered architecture, route semantics, and domain boundaries for implementation and integration." vertex="1">
<mxGeometry height="28" width="1800" x="47" y="-105" as="geometry" />
</mxCell>
<mxCell id="pZ8nqr70MQB4xoW7GgT7-276" parent="1" style="whiteSpace=wrap;html=1;fontSize=18;fillColor=#fed7aa;strokeColor=#ea580c;fontColor=#1e293b;rounded=1;arcSize=20;strokeWidth=1.5;" value="Payment" vertex="1">
<mxGeometry height="60" width="120" x="199" y="628" as="geometry" />
</mxCell>
<mxCell id="pZ8nqr70MQB4xoW7GgT7-278" parent="1" style="whiteSpace=wrap;html=1;" value="Infra-structure" vertex="1">
<mxGeometry height="60" width="120" x="426" y="628" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="key-flows" name="Key Flows and Context Governance">
<mxGraphModel dx="2410" dy="1524" grid="0" gridSize="8" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="2384" pageHeight="1504" background="#FFFFFF" math="1" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="LvJsPDa2WWtOUzAqmiQj-357" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="1512" width="2508" x="-26" y="-20" as="geometry" />
</mxCell>
<mxCell id="302" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#eff6ff;strokeColor=#93c5fd;strokeWidth=1.4;" value="" vertex="1">
<mxGeometry height="296" width="1088" x="80" y="144" as="geometry" />
</mxCell>
<mxCell id="303" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#fff7ed;strokeColor=#fdba74;strokeWidth=1.4;" value="" vertex="1">
<mxGeometry height="296" width="1088" x="1216" y="144" as="geometry" />
</mxCell>
<mxCell id="304" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#cbd5e1;strokeWidth=1.4;" value="" vertex="1">
<mxGeometry height="344" width="1088" x="80" y="488" as="geometry" />
</mxCell>
<mxCell id="305" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#fff7ed;strokeColor=#fdba74;strokeWidth=1.4;" value="" vertex="1">
<mxGeometry height="344" width="1088" x="1216" y="488" as="geometry" />
</mxCell>
<mxCell id="306" parent="1" style="rounded=1;arcSize=12;html=1;whiteSpace=wrap;fillColor=#f8fafc;strokeColor=#cbd5e1;strokeWidth=1.2;" value="" vertex="1">
<mxGeometry height="504" width="2224" x="96" y="880" as="geometry" />
</mxCell>
<mxCell id="307" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#1d4ed8;" value="Flow 1&#xa;Login and Store Context Bootstrap" vertex="1">
<mxGeometry height="52" width="360" x="112" y="168" as="geometry" />
</mxCell>
<mxCell id="308" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#c2410c;" value="Flow 2&#xa;F6 WebView Launch and Session Rules" vertex="1">
<mxGeometry height="52" width="360" x="1248" y="168" as="geometry" />
</mxCell>
<mxCell id="309" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#334155;" value="Flow 3&#xa;Home Aggregation and Mini Compatibility" vertex="1">
<mxGeometry height="52" width="420" x="112" y="512" as="geometry" />
</mxCell>
<mxCell id="310" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#c2410c;" value="Flow 4&#xa;Hybrid Procurement and Inbound Flow" vertex="1">
<mxGeometry height="52" width="420" x="1248" y="512" as="geometry" />
</mxCell>
<mxCell id="311" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#bfdbfe;strokeColor=#1d4ed8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="App Login" vertex="1">
<mxGeometry height="72" width="168" x="136" y="252" as="geometry" />
</mxCell>
<mxCell id="312" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="Token Issue" vertex="1">
<mxGeometry height="72" width="168" x="344" y="252" as="geometry" />
</mxCell>
<mxCell id="313" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="Store List + Default Store" vertex="1">
<mxGeometry height="72" width="208" x="552" y="252" as="geometry" />
</mxCell>
<mxCell id="314" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="Menu / Permission / Config Baseline" vertex="1">
<mxGeometry height="72" width="224" x="800" y="252" as="geometry" />
</mxCell>
<mxCell id="315" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#bfdbfe;strokeColor=#1d4ed8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="Context Established" vertex="1">
<mxGeometry height="64" width="888" x="136" y="360" as="geometry" />
</mxCell>
<mxCell id="316" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#bfdbfe;strokeColor=#1d4ed8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="App asks for WebView entry" vertex="1">
<mxGeometry height="72" width="176" x="1248" y="252" as="geometry" />
</mxCell>
<mxCell id="317" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#fed7aa;strokeColor=#ea580c;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="Backend exchanges / prepares ticket" vertex="1">
<mxGeometry height="72" width="208" x="1464" y="252" as="geometry" />
</mxCell>
<mxCell id="318" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#fef3c7;strokeColor=#d97706;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="Embedded open in WebView" vertex="1">
<mxGeometry height="72" width="192" x="1712" y="252" as="geometry" />
</mxCell>
<mxCell id="319" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#ea580c;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="Store switch invalidates WebView" vertex="1">
<mxGeometry height="52" width="200" x="1944" y="230" as="geometry" />
</mxCell>
<mxCell id="320" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#ea580c;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="Expired ticket needs refresh" vertex="1">
<mxGeometry height="52" width="200" x="1944" y="294" as="geometry" />
</mxCell>
<mxCell id="321" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#94a3b8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="Failure fallback shows safe message + trace ID" vertex="1">
<mxGeometry height="52" width="280" x="1944" y="358" as="geometry" />
</mxCell>
<mxCell id="322" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#bfdbfe;strokeColor=#1d4ed8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Workbench request" vertex="1">
<mxGeometry height="72" width="176" x="136" y="612" as="geometry" />
</mxCell>
<mxCell id="323" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Backend aggregates O2O / Warranty / ROOS / Config" vertex="1">
<mxGeometry height="72" width="336" x="352" y="612" as="geometry" />
</mxCell>
<mxCell id="324" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#64748b;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Partial failure returns degradable tiles" vertex="1">
<mxGeometry height="72" width="272" x="728" y="612" as="geometry" />
</mxCell>
<mxCell id="325" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#dc2626;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Legacy Mini direct access is compatibility only" vertex="1">
<mxGeometry height="72" width="864" x="128" y="728" as="geometry" />
</mxCell>
<mxCell id="326" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="context + permission + normalization" vertex="1">
<mxGeometry height="72" width="272" x="1248" y="612" as="geometry" />
</mxCell>
<mxCell id="327" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#fef3c7;strokeColor=#d97706;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="F6 owns procurement / promotion / ERP" vertex="1">
<mxGeometry height="72" width="256" x="1560" y="612" as="geometry" />
</mxCell>
<mxCell id="328" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#fed7aa;strokeColor=#ea580c;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;" value="Inbound execution uses WebView or API path" vertex="1">
<mxGeometry height="72" width="232" x="1856" y="612" as="geometry" />
</mxCell>
<mxCell id="329" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#64748b;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;fontStyle=1" value="Historical data may still come from Mini aggregation" vertex="1">
<mxGeometry height="72" width="840" x="1248" y="728" as="geometry" />
</mxCell>
<mxCell id="330" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#0f172a;" value="Shared Governance Rules" vertex="1">
<mxGeometry height="28" width="320" x="112" y="912" as="geometry" />
</mxCell>
<mxCell id="331" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#2563eb;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;spacing=14;fontStyle=1" value="Store context is owned by App Backend and every app request carries the current store scope." vertex="1">
<mxGeometry height="112" width="512" x="112" y="968" as="geometry" />
</mxCell>
<mxCell id="332" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#ea580c;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;spacing=14;fontStyle=1" value="F6 WebView is an embedded exception, not a replacement for the primary App -&amp;gt; App Backend route." vertex="1">
<mxGeometry height="112" width="512" x="664" y="968" as="geometry" />
</mxCell>
<mxCell id="333" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#22c55e;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;spacing=14;fontStyle=1" value="Mini systems remain independent and can be source-of-truth, but the app should consume them through aggregation whenever possible." vertex="1">
<mxGeometry height="112" width="552" x="1216" y="968" as="geometry" />
</mxCell>
<mxCell id="334" parent="1" style="rounded=1;arcSize=20;html=1;whiteSpace=wrap;fillColor=#ffffff;strokeColor=#94a3b8;strokeWidth=1.5;fontSize=20;fontColor=#1e293b;spacing=14;fontStyle=1" value="Every degraded or supplier-facing failure returns a user-safe message and a trace ID for support and audit." vertex="1">
<mxGeometry height="112" width="512" x="1800" y="968" as="geometry" />
</mxCell>
<mxCell id="335" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=26;fontStyle=1;fontColor=#0f172a;" value="Route Semantics" vertex="1">
<mxGeometry height="32" width="260" x="112" y="1124" as="geometry" />
</mxCell>
<mxCell id="336a" parent="1" style="shape=line;html=1;strokeColor=#2563eb;strokeWidth=1.5;" value="" vertex="1">
<mxGeometry height="10" width="84" x="136" y="1180" as="geometry" />
</mxCell>
<mxCell id="336" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontColor=#1f2937;" value="Primary App route" vertex="1">
<mxGeometry height="28" width="220" x="236" y="1170" as="geometry" />
</mxCell>
<mxCell id="337a" parent="1" style="shape=line;html=1;strokeColor=#ea580c;strokeWidth=1.5;dashed=1;dashPattern=6 4;" value="" vertex="1">
<mxGeometry height="10" width="84" x="496" y="1180" as="geometry" />
</mxCell>
<mxCell id="337" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontColor=#1f2937;" value="F6 embedded / exception" vertex="1">
<mxGeometry height="28" width="300" x="596" y="1170" as="geometry" />
</mxCell>
<mxCell id="338a" parent="1" style="shape=line;html=1;strokeColor=#64748b;strokeWidth=1.5;dashed=1;dashPattern=6 4;" value="" vertex="1">
<mxGeometry height="10" width="84" x="936" y="1180" as="geometry" />
</mxCell>
<mxCell id="338" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontColor=#1f2937;" value="Aggregation / external" vertex="1">
<mxGeometry height="28" width="280" x="1036" y="1170" as="geometry" />
</mxCell>
<mxCell id="339a" parent="1" style="shape=line;html=1;strokeColor=#dc2626;strokeWidth=1.5;dashed=1;dashPattern=2 2;" value="" vertex="1">
<mxGeometry height="10" width="84" x="1376" y="1180" as="geometry" />
</mxCell>
<mxCell id="339" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontColor=#1f2937;" value="Legacy compatibility" vertex="1">
<mxGeometry height="28" width="260" x="1476" y="1170" as="geometry" />
</mxCell>
<mxCell id="340" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=26;fontStyle=1;fontColor=#0f172a;" value="Review checks" vertex="1">
<mxGeometry height="32" width="240" x="112" y="1244" as="geometry" />
</mxCell>
<mxCell id="341" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=20;fontColor=#334155;" value="1. Store switch closes active supplier WebView session." vertex="1">
<mxGeometry height="30" width="720" x="136" y="1296" as="geometry" />
</mxCell>
<mxCell id="342" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=20;fontColor=#334155;" value="2. Home page degrades by tile, not by blank screen." vertex="1">
<mxGeometry height="30" width="720" x="136" y="1338" as="geometry" />
</mxCell>
<mxCell id="343" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=20;fontColor=#334155;" value="3. Procurement and inbound remain hybrid with F6-first supplier ownership." vertex="1">
<mxGeometry height="30" width="960" x="936" y="1296" as="geometry" />
</mxCell>
<mxCell id="344" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=20;fontColor=#334155;" value="4. Mini direct links are transitional and not the default route." vertex="1">
<mxGeometry height="30" width="960" x="936" y="1338" as="geometry" />
</mxCell>
<mxCell id="345" edge="1" parent="1" source="311" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563eb;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;" target="312" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="346" edge="1" parent="1" source="312" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563eb;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;" target="313" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="347" edge="1" parent="1" source="313" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563eb;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;" target="314" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="348" edge="1" parent="1" source="314" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563eb;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;" target="315" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="912" y="336" />
<mxPoint x="568" y="336" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="349" edge="1" parent="1" source="316" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563eb;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;" target="317" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="350" edge="1" parent="1" source="317" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#ea580c;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;" target="318" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="351" edge="1" parent="1" source="318" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#64748b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;" target="321" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="352" edge="1" parent="1" source="322" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1d4ed8;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;fontStyle=1" target="323" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="353" edge="1" parent="1" source="323" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#64748b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;fontStyle=1" target="324" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="354" edge="1" parent="1" source="323" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#dc2626;strokeWidth=1;dashed=1;dashPattern=2 2;endArrow=open;endFill=0;jumpStyle=arc;jumpSize=8;fontSize=20;fontStyle=1" target="325" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="520" y="696" />
<mxPoint x="568" y="696" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="355" edge="1" parent="1" source="326" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#1d4ed8;strokeWidth=1;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;" target="327" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="356" edge="1" parent="1" source="327" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#ea580c;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;" target="328" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="357" edge="1" parent="1" source="326" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#64748b;strokeWidth=1;dashed=1;dashPattern=6 4;endArrow=block;endFill=1;jumpStyle=arc;jumpSize=8;fontSize=20;" target="329" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="QYFYjBAQtFBsRfwwgIwy-357" parent="1" style="text;html=1;strokeColor=none;fillColor=#D5E8D4;align=left;verticalAlign=middle;fontSize=19;fontColor=#374151;spacingTop=8;spacingLeft=10;labelBorderColor=none;" value="Version: v0.9&lt;br&gt;Date: 2026-06-16&lt;div&gt;Page:&amp;nbsp;Key Flows and Context Governance&lt;/div&gt;&lt;div&gt;AuthorZhao, Guangfei&lt;/div&gt;" vertex="1">
<mxGeometry height="104" width="452" x="1992" y="16" as="geometry" />
</mxCell>
<mxCell id="Li3sf_c2Rl8G3HEoLjZh-357" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="132" width="1098" x="-26" y="-19" as="geometry" />
</mxCell>
<mxCell id="300" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=32;fontStyle=1;fontColor=#0f172a;" value="Key Flows and Context Governance" vertex="1">
<mxGeometry height="40" width="720" x="6" y="-6" as="geometry" />
</mxCell>
<mxCell id="301" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=16;fontColor=#475569;" value="Runtime behaviors map directly to the architecture page: primary backend route, F6 embedded exception, and legacy Mini compatibility." vertex="1">
<mxGeometry height="24" width="1180" x="6" y="38" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="YvHryloennJe7v62yolU" name="Network Architecture">
<mxGraphModel dx="1768" dy="1051" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="f3ws72g2ZYmKRIlbP6fx-68" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="1205" width="2038" x="80" y="66" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=2;fontSize=18;fontStyle=1;fontColor=#1e3a8a;" value="Mobile App" vertex="1">
<mxGeometry height="70" width="250" x="914" y="241" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-6" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#eff6ff;strokeColor=#93c5fd;fontSize=13;fontColor=#1f2937;" value="Native Shell + WebView&lt;br&gt;Scan / Camera / Upload / JSBridge" vertex="1">
<mxGeometry height="62" width="300" x="1204" y="245" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-7" parent="1" style="shape=cloud;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#94a3b8;strokeWidth=1.8;fontSize=16;fontStyle=1;fontColor=#1f2937;" value="Internet" vertex="1">
<mxGeometry height="80" width="150" x="964" y="341" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-8" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#eef6ff;strokeColor=#2563eb;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="530" width="580" x="754" y="461" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-9" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#1e3a8a;" value="Primary App Backend Domain (Azure China)" vertex="1">
<mxGeometry height="30" width="460" x="814" y="481" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-10" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff7ed;strokeColor=#f59e0b;strokeWidth=1.4;fontStyle=1;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;fontColor=#1f2937;" value="Public Ingress Zone" vertex="1">
<mxGeometry height="130" width="520" x="784" y="531" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-11" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#fb923c;strokeWidth=1.5;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="WAF / Application Gateway" vertex="1">
<mxGeometry height="58" width="190" x="824" y="581" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-12" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#fb923c;strokeWidth=1.5;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="Public Load Balancer" vertex="1">
<mxGeometry height="58" width="180" x="1074" y="581" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-13" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e0f2fe;strokeColor=#38bdf8;strokeWidth=1.4;fontStyle=1;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;fontColor=#1f2937;" value="Private Application Zone" vertex="1">
<mxGeometry height="270" width="520" x="784" y="691" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-14" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f3ff;strokeColor=#a78bfa;strokeWidth=1.4;fontSize=14;fontStyle=1;fontColor=#1f2937;" value="NSG / Access Control" vertex="1">
<mxGeometry height="42" width="420" x="834" y="731" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-15" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#60a5fa;strokeWidth=1.5;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="App Backend BFF / Unified APIs" vertex="1">
<mxGeometry height="80" width="180" x="824" y="821" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-16" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#60a5fa;strokeWidth=1.5;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="Business Aggregation / Orchestration" vertex="1">
<mxGeometry height="80" width="200" x="1044" y="821" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-17" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#60a5fa;strokeWidth=1.5;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="F6 Integration Adapter" vertex="1">
<mxGeometry height="38" width="200" x="934" y="911" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-18" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8fafc;strokeColor=#cbd5e1;strokeWidth=1;fontSize=12;fontColor=#374151;" value="Identity / Store Context&lt;br&gt;Menu / Config / WebView Ticket" vertex="1">
<mxGeometry height="40" width="180" x="824" y="781" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-19" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8fafc;strokeColor=#cbd5e1;strokeWidth=1;fontSize=12;fontColor=#374151;" value="Unified Error / Audit&#xa;Logging / Security / Trace ID" vertex="1">
<mxGeometry height="40" width="200" x="1044" y="781" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-20" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0fdf4;strokeColor=#16a34a;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="530" width="460" x="204" y="461" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-21" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=22;fontStyle=1;fontColor=#166534;" value="Mini Program Backend Azure VPC" vertex="1">
<mxGeometry height="30" width="380" x="244" y="481" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-22" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dcfce7;strokeColor=#86efac;strokeWidth=1;fontSize=12;fontColor=#166534;" value="Independent VPC / network boundary" vertex="1">
<mxGeometry height="28" width="250" x="309" y="511" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-23" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ecfdf5;strokeColor=#4ade80;strokeWidth=1.4;fontStyle=1;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;fontColor=#1f2937;" value="Public Ingress Zone" vertex="1">
<mxGeometry height="120" width="400" x="234" y="531" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-24" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4ade80;strokeWidth=1.5;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="Mini Gateway / Firewall" vertex="1">
<mxGeometry height="56" width="180" x="344" y="579" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-25" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ecfdf5;strokeColor=#4ade80;strokeWidth=1.4;fontStyle=1;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;fontColor=#1f2937;" value="Independent Mini Services" vertex="1">
<mxGeometry height="188" width="400" x="234" y="706" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-26" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#4ade80;strokeWidth=1.4;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="O2O / Warranty / 马上下单 / ROOS&lt;br&gt;Shared Capabilities" vertex="1">
<mxGeometry height="80" width="270" x="299" y="776" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-27" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0fdf4;strokeColor=#86efac;fontSize=13;fontColor=#166534;" value="Independent domain retained. App-facing flows should converge through App Backend. Only selected legacy modules may still direct-connect." vertex="1">
<mxGeometry height="42" width="370" x="249" y="913" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-28" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff7ed;strokeColor=#ea580c;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="530" width="450" x="1424" y="461" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-29" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=21;fontStyle=1;fontColor=#c2410c;" value="F6 Supplier VNet (Alibaba Cloud Shanghai)" vertex="1">
<mxGeometry height="30" width="390" x="1454" y="481" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-30" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffedd5;strokeColor=#fdba74;strokeWidth=1;fontSize=12;fontColor=#9a3412;" value="Supplier-managed VPC / network boundary" vertex="1">
<mxGeometry height="28" width="285" x="1506" y="511" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-31" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff7ed;strokeColor=#fb923c;strokeWidth=1.4;fontStyle=1;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;fontColor=#1f2937;" value="Public Access Zone" vertex="1">
<mxGeometry height="130" width="390" x="1454" y="531" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-32" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#fb923c;strokeWidth=1.5;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="Access Gateway / WAF" vertex="1">
<mxGeometry height="58" width="160" x="1484" y="581" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-33" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#fb923c;strokeWidth=1.5;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="Load Balancer" vertex="1">
<mxGeometry height="58" width="140" x="1674" y="581" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-34" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#fb923c;strokeWidth=1.5;fontSize=13;fontStyle=1;fontColor=#1f2937;" value="Allowlisted B2B API Gateway" vertex="1">
<mxGeometry height="34" width="210" x="1544" y="539" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-35" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff7ed;strokeColor=#fb923c;strokeWidth=1.4;fontStyle=1;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;fontColor=#1f2937;" value="Private Service Zone" vertex="1">
<mxGeometry height="240" width="390" x="1454" y="686" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-36" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f3ff;strokeColor=#a78bfa;strokeWidth=1.4;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="Security Group / Access Policy" vertex="1">
<mxGeometry height="42" width="330" x="1484" y="724" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-37" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#fdba74;strokeWidth=1.4;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="F6 WebView Pages" vertex="1">
<mxGeometry height="78" width="150" x="1484" y="811" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-38" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#fdba74;strokeWidth=1.4;fontSize=20;fontStyle=0;fontColor=#1f2937;" value="F6 Capability APIs&#xa;(Backend Only)" vertex="1">
<mxGeometry height="78" width="150" x="1664" y="811" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-39" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff7ed;strokeColor=#fdba74;fontSize=13;fontColor=#92400e;" value="Procurement / Promotion / ERP capabilities are consumed through backend integration. App direct access is allowed only for embedded F6 H5 pages." vertex="1">
<mxGeometry height="48" width="330" x="1484" y="913" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-40" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8fafc;strokeColor=#d1d5db;strokeWidth=1.2;" value="" vertex="1">
<mxGeometry height="166" width="1670" x="204" y="1031" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-41" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#111827;" value="Architecture Principles" vertex="1">
<mxGeometry height="24" width="220" x="230" y="1051" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-42" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;fontSize=14;fontColor=#374151;spacingTop=4;" value="1. `Mobile App -&amp;gt; App Backend` is the only primary route.&lt;br&gt;2. `App -&amp;gt; F6` appears only in the Embedded H5 scenario.&lt;br&gt;3. `App Backend -&amp;gt; F6 API` must pass through `F6 Integration Adapter`.&lt;br&gt;4. `Mini Program Backend` remains an independent domain.&lt;br&gt;5. Unified controls include HTTPS/TLS, Trace ID, audit logging, config switches, and normalized error handling." vertex="1">
<mxGeometry height="84" width="980" x="230" y="1087" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-43" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#111827;" value="Legend" vertex="1">
<mxGeometry height="24" width="80" x="1304" y="1051" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-44" parent="1" style="shape=line;html=1;strokeColor=#2563eb;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="10" width="72" x="1312" y="1095" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-45" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=13;fontColor=#1f2937;" value="Primary route" vertex="1">
<mxGeometry height="24" width="120" x="1394" y="1086" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-46" parent="1" style="shape=line;html=1;strokeColor=#16a34a;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="10" width="72" x="1312" y="1129" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-47" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=13;fontColor=#1f2937;" value="VPC backend integration" vertex="1">
<mxGeometry height="24" width="140" x="1394" y="1120" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-48" parent="1" style="shape=line;html=1;strokeColor=#f97316;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="10" width="72" x="1564" y="1095" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-49" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=13;fontColor=#1f2937;" value="F6 H5 route" vertex="1">
<mxGeometry height="24" width="110" x="1646" y="1086" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-50" parent="1" style="shape=line;html=1;strokeColor=#6b7280;strokeWidth=2;dashed=1;dashPattern=8 8;" value="" vertex="1">
<mxGeometry height="10" width="72" x="1564" y="1129" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-51" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=13;fontColor=#1f2937;" value="Legacy compatibility" vertex="1">
<mxGeometry height="24" width="150" x="1646" y="1120" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-52" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;strokeWidth=1.2;fontSize=12;fontColor=#1e3a8a;" target="f3ws72g2ZYmKRIlbP6fx-6" value="">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-53" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;strokeWidth=1.4;" target="f3ws72g2ZYmKRIlbP6fx-7">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-54" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;strokeWidth=1.5;fontSize=12;fontColor=#1e3a8a;" target="f3ws72g2ZYmKRIlbP6fx-11" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1044" y="471" />
<mxPoint x="919" y="471" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-55" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#f97316;strokeWidth=1.5;fontSize=12;fontColor=#c2410c;" target="f3ws72g2ZYmKRIlbP6fx-32" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1564" y="381" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-56" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;strokeWidth=1.2;" target="f3ws72g2ZYmKRIlbP6fx-12">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-57" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;strokeWidth=1.2;" target="f3ws72g2ZYmKRIlbP6fx-15">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1164" y="721" />
<mxPoint x="914" y="721" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-58" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#2563eb;strokeWidth=1.4;" target="f3ws72g2ZYmKRIlbP6fx-16">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-59" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#16a34a;strokeWidth=1.4;fontSize=12;fontColor=#166534;exitX=0;exitY=0.75;exitDx=0;exitDy=0;" target="f3ws72g2ZYmKRIlbP6fx-17" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1024" y="881" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-60" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#16a34a;strokeWidth=1.4;fontSize=12;fontColor=#166534;" target="f3ws72g2ZYmKRIlbP6fx-34" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1384" y="931" />
<mxPoint x="1384" y="556" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-61" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#16a34a;strokeWidth=1.4;" target="f3ws72g2ZYmKRIlbP6fx-38">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1649" y="692" />
<mxPoint x="1739" y="692" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-62" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#16a34a;strokeWidth=1.4;fontSize=12;fontColor=#166534;startSize=6;" target="f3ws72g2ZYmKRIlbP6fx-24" value="">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1204" y="971" />
<mxPoint x="724" y="971" />
<mxPoint x="724" y="731" />
<mxPoint x="434" y="731" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-63" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#f97316;strokeWidth=1.2;" target="f3ws72g2ZYmKRIlbP6fx-33">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-64" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#f97316;strokeWidth=1.2;" target="f3ws72g2ZYmKRIlbP6fx-37">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1834" y="610" />
<mxPoint x="1834" y="781" />
<mxPoint x="1559" y="781" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-65" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;dashed=1;dashPattern=8 8;strokeColor=#6b7280;strokeWidth=1.2;fontSize=12;fontColor=#4b5563;labelBackgroundColor=#ffffff;" target="f3ws72g2ZYmKRIlbP6fx-24" value="Legacy only">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="434" y="381" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-66" edge="1" parent="1" source="f3ws72g2ZYmKRIlbP6fx-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.63;entryY=1.012;entryDx=0;entryDy=0;entryPerimeter=0;" target="f3ws72g2ZYmKRIlbP6fx-26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="OB1gE-xTmAWO8eZxwI0i-1" parent="1" style="text;html=1;strokeColor=none;fillColor=#D5E8D4;align=left;verticalAlign=middle;fontSize=19;fontColor=#374151;spacingTop=8;spacingLeft=10;labelBorderColor=none;" value="Version: v0.9&lt;br&gt;Date: 2026-06-16&lt;div&gt;Page:&amp;nbsp;Network Architecture&lt;/div&gt;&lt;div&gt;AuthorZhao, Guangfei&lt;/div&gt;" vertex="1">
<mxGeometry height="104" width="452" x="1644" y="114" as="geometry" />
</mxCell>
<mxCell id="o3fHcUEwmu2BC2NcclIt-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="126" width="1098" x="80" y="66" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-1" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=28;fontStyle=1;fontColor=#1f2937;" value="Continental Retail APP Network Architecture" vertex="1">
<mxGeometry height="40" width="620" x="100" y="89" as="geometry" />
</mxCell>
<mxCell id="f3ws72g2ZYmKRIlbP6fx-2" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=13;fontColor=#4b5563;" value="Primary route: Mobile App -&gt; App Backend. F6 API access is backend-only, F6 H5 is embedded-only, and Mini direct access is retained only for limited legacy compatibility." vertex="1">
<mxGeometry height="24" width="980" x="100" y="143" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="bVPbAlAU53e4DCiR0KdR" name="Network Topology">
<mxGraphModel dx="2020" dy="1201" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="c3H3gHCFafL4nHDOT0y7-56" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="1276" width="2062" x="214" y="305" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f9fafb;strokeColor=#9ca3af;strokeWidth=1.5;dashed=1;dashPattern=8 8;" value="" vertex="1">
<mxGeometry height="650" width="440" x="1020" y="519" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-6" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#111827;" value="Public Network" vertex="1">
<mxGeometry height="28" width="180" x="1150" y="539" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-7" parent="1" style="shape=mxgraph.aws4.mobile_client;html=1;fillColor=#f3f4f6;strokeColor=#111827;strokeWidth=2;fontSize=16;fontStyle=1;fontColor=#111827;labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;spacingTop=8;" value="Mobile App" vertex="1">
<mxGeometry height="95" width="72" x="1204" y="589" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-8" parent="1" style="shape=cloud;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#374151;strokeWidth=2;fontSize=18;fontStyle=1;fontColor=#1f2937;" value="Internet" vertex="1">
<mxGeometry height="110" width="210" x="1135" y="739" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-9" parent="1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#ffffff;strokeColor=#6b7280;strokeWidth=1.4;fontSize=13;fontStyle=1;fontColor=#111827;" value="Public DNS / Domain" vertex="1">
<mxGeometry height="74" width="150" x="1165" y="909" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-10" parent="1" style="shape=mxgraph.azure.cloud;html=1;fillColor=#ffffff;strokeColor=#111827;strokeWidth=2;fontSize=18;fontStyle=1;fontColor=#111827;verticalAlign=top;spacingTop=18;" value="Azure China&lt;br&gt;Primary App Backend VNet" vertex="1">
<mxGeometry height="470" width="520" x="420" y="629" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-11" parent="1" style="shape=rect;rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#111827;strokeWidth=1.8;dashed=1;dashPattern=6 6;fontSize=13;fontColor=#111827;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;" value="VNet boundary" vertex="1">
<mxGeometry height="330" width="430" x="465" y="719" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-12" parent="1" style="shape=rect;rounded=0;whiteSpace=wrap;html=1;fillColor=#f9fafb;strokeColor=#374151;strokeWidth=1.4;fontStyle=1;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;fontColor=#1f2937;" value="Public DMZ Subnet" vertex="1">
<mxGeometry height="98" width="360" x="500" y="754" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-13" parent="1" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#ffffff;strokeColor=#374151;strokeWidth=1.5;fontSize=13;fontStyle=1;fontColor=#1f2937;" value="WAF / App Gateway&lt;br&gt;+ Public LB" vertex="1">
<mxGeometry height="58" width="210" x="575" y="786" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-14" parent="1" style="shape=rect;rounded=0;whiteSpace=wrap;html=1;fillColor=#f3f4f6;strokeColor=#6b7280;strokeWidth=1.4;fontStyle=1;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;fontColor=#1f2937;" value="Private Application Subnet" vertex="1">
<mxGeometry height="150" width="360" x="500" y="879" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-15" parent="1" style="shape=mxgraph.azure.app_services;html=1;fillColor=#ffffff;strokeColor=#374151;strokeWidth=1.5;fontSize=13;fontStyle=1;fontColor=#1f2937;labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;spacingTop=6;" value="" vertex="1">
<mxGeometry height="74" width="110" x="570" y="930" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-16" parent="1" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#ffffff;strokeColor=#374151;strokeWidth=1.5;fontSize=13;fontStyle=1;fontColor=#1f2937;" value="F6 Integration&lt;br&gt;Adapter" vertex="1">
<mxGeometry height="58" width="130" x="710" y="930" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-17" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f3f4f6;strokeColor=#6b7280;strokeWidth=1.3;fontSize=12;fontStyle=1;fontColor=#111827;" value="NSG / Access Rules" vertex="1">
<mxGeometry height="32" width="220" x="570" y="879" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-18" parent="1" style="shape=mxgraph.azure.cloud;html=1;fillColor=#ffffff;strokeColor=#111827;strokeWidth=2;fontSize=18;fontStyle=1;fontColor=#111827;verticalAlign=top;spacingTop=18;" value="Mini Program Backend&lt;br&gt;Azure Independent VPC" vertex="1">
<mxGeometry height="360" width="430" x="420" y="1094" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-19" parent="1" style="shape=rect;rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#111827;strokeWidth=1.8;dashed=1;dashPattern=6 6;fontSize=13;fontColor=#111827;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;" value="VPC boundary" vertex="1">
<mxGeometry height="225" width="340" x="465" y="1194" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-20" parent="1" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#ffffff;strokeColor=#374151;strokeWidth=1.5;fontSize=13;fontStyle=1;fontColor=#1f2937;" value="Mini Gateway&lt;br&gt;/ Firewall" vertex="1">
<mxGeometry height="58" width="150" x="500" y="1249" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-21" parent="1" style="shape=datastore;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;fillColor=#ffffff;strokeColor=#374151;strokeWidth=1.5;fontSize=13;fontStyle=1;fontColor=#1f2937;" value="Mini Services&lt;br&gt;O2O / Warranty&lt;br&gt;马上下单 / ROOS" vertex="1">
<mxGeometry height="92" width="150" x="625" y="1309" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-22" parent="1" style="shape=mxgraph.azure.cloud;html=1;fillColor=#f9fafb;strokeColor=#111827;strokeWidth=2;fontSize=18;fontStyle=1;fontColor=#111827;verticalAlign=top;spacingTop=18;" value="F6 Supplier VNet&lt;br&gt;Alibaba Cloud Shanghai" vertex="1">
<mxGeometry height="540" width="520" x="1540" y="629" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-23" parent="1" style="shape=rect;rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#111827;strokeWidth=1.8;dashed=1;dashPattern=6 6;fontSize=13;fontColor=#111827;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;" value="Supplier-managed VPC boundary" vertex="1">
<mxGeometry height="390" width="430" x="1585" y="719" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-24" parent="1" style="shape=rect;rounded=0;whiteSpace=wrap;html=1;fillColor=#f9fafb;strokeColor=#374151;strokeWidth=1.4;fontStyle=1;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;fontColor=#1f2937;" value="Public Access Subnet" vertex="1">
<mxGeometry height="130" width="360" x="1620" y="754" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-25" parent="1" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#ffffff;strokeColor=#374151;strokeWidth=1.5;fontSize=13;fontStyle=1;fontColor=#1f2937;" value="Access Gateway / WAF&lt;br&gt;+ Load Balancer" vertex="1">
<mxGeometry height="58" width="190" x="1645" y="799" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-26" parent="1" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#ffffff;strokeColor=#374151;strokeWidth=1.5;fontSize=13;fontStyle=1;fontColor=#1f2937;" value="Allowlisted&lt;br&gt;B2B API Gateway" vertex="1">
<mxGeometry height="58" width="150" x="1850" y="799" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-27" parent="1" style="shape=rect;rounded=0;whiteSpace=wrap;html=1;fillColor=#f3f4f6;strokeColor=#6b7280;strokeWidth=1.4;fontStyle=1;verticalAlign=top;align=left;spacingTop=8;spacingLeft=10;fontColor=#1f2937;" value="Private Service Subnet" vertex="1">
<mxGeometry height="165" width="360" x="1620" y="914" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-28" parent="1" style="shape=mxgraph.aws4.client;html=1;fillColor=#ffffff;strokeColor=#6b7280;strokeWidth=1.5;fontSize=13;fontStyle=1;fontColor=#1f2937;labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;spacingTop=6;" value="F6 WebView&lt;br&gt;Pages" vertex="1">
<mxGeometry height="74" width="92" x="1665" y="969" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-29" parent="1" style="shape=datastore;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;fillColor=#ffffff;strokeColor=#6b7280;strokeWidth=1.5;fontSize=13;fontStyle=1;fontColor=#1f2937;" value="F6 Capability APIs&lt;br&gt;Backend Only" vertex="1">
<mxGeometry height="74" width="150" x="1830" y="969" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-30" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f9fafb;strokeColor=#9ca3af;strokeWidth=1.2;" value="" vertex="1">
<mxGeometry height="155" width="720" x="1340" y="1249" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-31" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#111827;" value="Topology Reading" vertex="1">
<mxGeometry height="24" width="180" x="1370" y="1269" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-32" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;fontSize=14;fontColor=#374151;spacingTop=4;" value="1. This page is network-centric: VNet/VPC boundaries are the main objects.&lt;br&gt;2. Public traffic enters only through exposed ingress nodes.&lt;br&gt;3. Backend integration crosses network boundaries through controlled gateways.&lt;br&gt;4. Mini direct access is shown as a legacy exception, not a target route." vertex="1">
<mxGeometry height="88" width="650" x="1370" y="1304" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-33" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9ca3af;strokeWidth=1.2;" value="" vertex="1">
<mxGeometry height="180" width="320" x="980" y="1251" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-34" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=18;fontStyle=1;fontColor=#111827;" value="Legend" vertex="1">
<mxGeometry height="24" width="90" x="1010" y="1259" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-35" parent="1" style="shape=line;html=1;strokeColor=#111827;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="10" width="70" x="1015" y="1302" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-36" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=13;fontColor=#1f2937;" value="Primary App route" vertex="1">
<mxGeometry height="24" width="150" x="1100" y="1293" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-37" parent="1" style="shape=line;html=1;strokeColor=#111827;strokeWidth=2;" value="" vertex="1">
<mxGeometry height="10" width="70" x="1015" y="1336" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-38" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=13;fontColor=#1f2937;" value="Backend integration" vertex="1">
<mxGeometry height="24" width="160" x="1100" y="1327" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-39" parent="1" style="shape=line;html=1;strokeColor=#111827;strokeWidth=2;dashed=1;dashPattern=2 4;" value="" vertex="1">
<mxGeometry height="10" width="70" x="1015" y="1370" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-40" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=13;fontColor=#1f2937;" value="F6 WebView route" vertex="1">
<mxGeometry height="24" width="160" x="1100" y="1361" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-41" parent="1" style="shape=line;html=1;strokeColor=#6b7280;strokeWidth=2;dashed=1;dashPattern=8 8;" value="" vertex="1">
<mxGeometry height="10" width="70" x="1015" y="1404" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-42" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=13;fontColor=#1f2937;" value="Legacy compatibility" vertex="1">
<mxGeometry height="24" width="170" x="1100" y="1395" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-43" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1.5;" target="c3H3gHCFafL4nHDOT0y7-8">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-44" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1.2;" target="c3H3gHCFafL4nHDOT0y7-9">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-45" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1.5;fontSize=12;fontColor=#111827;labelBackgroundColor=#ffffff;" target="c3H3gHCFafL4nHDOT0y7-13" value="primary HTTPS">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="940" y="946" />
<mxPoint x="940" y="815" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-46" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1.3;" target="c3H3gHCFafL4nHDOT0y7-15">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-47" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1.4;" target="c3H3gHCFafL4nHDOT0y7-16">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-48" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1;fontSize=12;fontColor=#111827;labelBackgroundColor=#ffffff;" target="c3H3gHCFafL4nHDOT0y7-26" value="allowlisted B2B API">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="775" y="1014" />
<mxPoint x="1500" y="1014" />
<mxPoint x="1500" y="874" />
<mxPoint x="1925" y="874" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-49" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1.3;" target="c3H3gHCFafL4nHDOT0y7-29">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-50" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1.8;fontSize=12;fontColor=#111827;labelBackgroundColor=#ffffff;" target="c3H3gHCFafL4nHDOT0y7-20" value="backend aggregation">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="625" y="1064" />
<mxPoint x="575" y="1064" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-51" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1.3;" target="c3H3gHCFafL4nHDOT0y7-21">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-52" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1.4;fontSize=12;fontColor=#111827;labelBackgroundColor=#ffffff;dashed=1;dashPattern=2 4;" target="c3H3gHCFafL4nHDOT0y7-25" value="embedded WebView">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1420" y="946" />
<mxPoint x="1420" y="828" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-53" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#111827;strokeWidth=1.2;dashed=1;dashPattern=2 4;" target="c3H3gHCFafL4nHDOT0y7-28">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-54" edge="1" parent="1" source="c3H3gHCFafL4nHDOT0y7-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;dashed=1;dashPattern=8 8;strokeColor=#6b7280;strokeWidth=1.3;fontSize=12;fontColor=#4b5563;labelBackgroundColor=#ffffff;" target="c3H3gHCFafL4nHDOT0y7-20" value="legacy only">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="980" y="946" />
<mxPoint x="980" y="1278" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-55" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=10;" value="&lt;span style=&quot;color: rgb(31, 41, 55); font-weight: 700; white-space: nowrap;&quot;&gt;App Backend&lt;/span&gt;&lt;br style=&quot;color: rgb(31, 41, 55); font-weight: 700; white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: rgb(31, 41, 55); font-weight: 700; white-space: nowrap;&quot;&gt;BFF + Orchestration&lt;/span&gt;" vertex="1">
<mxGeometry height="73" width="110" x="570" y="931" as="geometry" />
</mxCell>
<mxCell id="-MEyYBA3na6uxiJNkq2Z-1" parent="1" style="text;html=1;strokeColor=none;fillColor=#D5E8D4;align=left;verticalAlign=middle;fontSize=19;fontColor=#374151;spacingTop=8;spacingLeft=10;labelBorderColor=none;" value="Version: v0.9&lt;br&gt;Date: 2026-06-16&lt;div&gt;Page: Network Topology&lt;/div&gt;&lt;div&gt;AuthorZhao, Guangfei&lt;/div&gt;" vertex="1">
<mxGeometry height="104" width="452" x="1789" y="343" as="geometry" />
</mxCell>
<mxCell id="c_7y2mpMpV_Ax_gGnA0J-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
<mxGeometry height="132" width="844" x="215" y="306" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-1" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=28;fontStyle=1;fontColor=#1f2937;" value="Continental Retail APP Network Topology" vertex="1">
<mxGeometry height="40" width="700" x="254" y="332" as="geometry" />
</mxCell>
<mxCell id="c3H3gHCFafL4nHDOT0y7-2" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=13;fontColor=#4b5563;" value="Topology view focused on network boundaries, public ingress points, and allowed cross-domain connectivity." vertex="1">
<mxGeometry height="24" width="940" x="254" y="372" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>