Files
dashback/api-graph.svg
2026-10-18 03:15:23 +02:00

2728 lines
330 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 16.1.0 (0)
-->
<!-- Title: api Pages: 1 -->
<svg width="10774pt" height="3029pt"
viewBox="0.00 0.00 10774.00 3029.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="background-color:#1e2430;">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 2993.02)">
<title>api</title>
<polygon fill="#1e2430" stroke="none" points="-36,36 -36,-2993.02 10737.7,-2993.02 10737.7,36 -36,36"/>
<g id="clust1" class="cluster">
<title>cluster_identity</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M9679,-252.12C9679,-252.12 10651,-252.12 10651,-252.12 10657,-252.12 10663,-258.12 10663,-264.12 10663,-264.12 10663,-1222.72 10663,-1222.72 10663,-1228.72 10657,-1234.72 10651,-1234.72 10651,-1234.72 9679,-1234.72 9679,-1234.72 9673,-1234.72 9667,-1228.72 9667,-1222.72 9667,-1222.72 9667,-264.12 9667,-264.12 9667,-258.12 9673,-252.12 9679,-252.12"/>
<text xml:space="preserve" text-anchor="middle" x="9732.52" y="-1217.22" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">Identity &amp; Access</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_crm</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M3951,-893.72C3951,-893.72 4213,-893.72 4213,-893.72 4219,-893.72 4225,-899.72 4225,-905.72 4225,-905.72 4225,-1312.72 4225,-1312.72 4225,-1318.72 4219,-1324.72 4213,-1324.72 4213,-1324.72 3951,-1324.72 3951,-1324.72 3945,-1324.72 3939,-1318.72 3939,-1312.72 3939,-1312.72 3939,-905.72 3939,-905.72 3939,-899.72 3945,-893.72 3951,-893.72"/>
<text xml:space="preserve" text-anchor="middle" x="3997.84" y="-1307.22" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">Entities &amp; CRM</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_catalog</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M2659,-1387.52C2659,-1387.52 3758,-1387.52 3758,-1387.52 3764,-1387.52 3770,-1393.52 3770,-1399.52 3770,-1399.52 3770,-2414.32 3770,-2414.32 3770,-2420.32 3764,-2426.32 3758,-2426.32 3758,-2426.32 2659,-2426.32 2659,-2426.32 2653,-2426.32 2647,-2420.32 2647,-2414.32 2647,-2414.32 2647,-1399.52 2647,-1399.52 2647,-1393.52 2653,-1387.52 2659,-1387.52"/>
<text xml:space="preserve" text-anchor="middle" x="2719.62" y="-2408.82" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">Catalog &amp; Products</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_properties</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M4978,-871.72C4978,-871.72 5684,-871.72 5684,-871.72 5690,-871.72 5696,-877.72 5696,-883.72 5696,-883.72 5696,-1334.72 5696,-1334.72 5696,-1340.72 5690,-1346.72 5684,-1346.72 5684,-1346.72 4978,-1346.72 4978,-1346.72 4972,-1346.72 4966,-1340.72 4966,-1334.72 4966,-1334.72 4966,-883.72 4966,-883.72 4966,-877.72 4972,-871.72 4978,-871.72"/>
<text xml:space="preserve" text-anchor="middle" x="5049.03" y="-1329.22" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">Properties &amp; Attributes</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_purchasing</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M20,-2138.32C20,-2138.32 542,-2138.32 542,-2138.32 548,-2138.32 554,-2144.32 554,-2150.32 554,-2150.32 554,-2772.12 554,-2772.12 554,-2778.12 548,-2784.12 542,-2784.12 542,-2784.12 20,-2784.12 20,-2784.12 14,-2784.12 8,-2778.12 8,-2772.12 8,-2772.12 8,-2150.32 8,-2150.32 8,-2144.32 14,-2138.32 20,-2138.32"/>
<text xml:space="preserve" text-anchor="middle" x="93.96" y="-2766.62" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">Suppliers &amp; Purchasing</text>
</g>
<g id="clust6" class="cluster">
<title>cluster_sales</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M842,-1519.52C842,-1519.52 1781,-1519.52 1781,-1519.52 1787,-1519.52 1793,-1525.52 1793,-1531.52 1793,-1531.52 1793,-2414.32 1793,-2414.32 1793,-2420.32 1787,-2426.32 1781,-2426.32 1781,-2426.32 842,-2426.32 842,-2426.32 836,-2426.32 830,-2420.32 830,-2414.32 830,-2414.32 830,-1531.52 830,-1531.52 830,-1525.52 836,-1519.52 842,-1519.52"/>
<text xml:space="preserve" text-anchor="middle" x="900.11" y="-2408.82" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">Sales &amp; Fulfillment</text>
</g>
<g id="clust7" class="cluster">
<title>cluster_inventory</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M3466,-2160.32C3466,-2160.32 4326,-2160.32 4326,-2160.32 4332,-2160.32 4338,-2166.32 4338,-2172.32 4338,-2172.32 4338,-2763.12 4338,-2763.12 4338,-2769.12 4332,-2775.12 4326,-2775.12 4326,-2775.12 3466,-2775.12 3466,-2775.12 3460,-2775.12 3454,-2769.12 3454,-2763.12 3454,-2763.12 3454,-2172.32 3454,-2172.32 3454,-2166.32 3460,-2160.32 3466,-2160.32"/>
<text xml:space="preserve" text-anchor="middle" x="3546.21" y="-2757.62" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">Inventory &amp; Warehousing</text>
</g>
<g id="clust8" class="cluster">
<title>cluster_finance</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M9340,-1014.72C9340,-1014.72 9494,-1014.72 9494,-1014.72 9500,-1014.72 9506,-1020.72 9506,-1026.72 9506,-1026.72 9506,-1795.52 9506,-1795.52 9506,-1801.52 9500,-1807.52 9494,-1807.52 9494,-1807.52 9340,-1807.52 9340,-1807.52 9334,-1807.52 9328,-1801.52 9328,-1795.52 9328,-1795.52 9328,-1026.72 9328,-1026.72 9328,-1020.72 9334,-1014.72 9340,-1014.72"/>
<text xml:space="preserve" text-anchor="middle" x="9405.2" y="-1790.02" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">Finance &amp; Payments</text>
</g>
<g id="clust9" class="cluster">
<title>cluster_media</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M8756,-487.92C8756,-487.92 9647,-487.92 9647,-487.92 9653,-487.92 9659,-493.92 9659,-499.92 9659,-499.92 9659,-818.92 9659,-818.92 9659,-824.92 9653,-830.92 9647,-830.92 9647,-830.92 8756,-830.92 8756,-830.92 8750,-830.92 8744,-824.92 8744,-818.92 8744,-818.92 8744,-499.92 8744,-499.92 8744,-493.92 8750,-487.92 8756,-487.92"/>
<text xml:space="preserve" text-anchor="middle" x="8807.87" y="-813.42" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">Media &amp; Storage</text>
</g>
<g id="clust10" class="cluster">
<title>cluster_pos</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M9593,-2487.12C9593,-2487.12 9700,-2487.12 9700,-2487.12 9706,-2487.12 9712,-2493.12 9712,-2499.12 9712,-2499.12 9712,-2774.12 9712,-2774.12 9712,-2780.12 9706,-2786.12 9700,-2786.12 9700,-2786.12 9593,-2786.12 9593,-2786.12 9587,-2786.12 9581,-2780.12 9581,-2774.12 9581,-2774.12 9581,-2499.12 9581,-2499.12 9581,-2493.12 9587,-2487.12 9593,-2487.12"/>
<text xml:space="preserve" text-anchor="middle" x="9646.52" y="-2768.62" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">POS &amp; Hardware</text>
</g>
<g id="clust11" class="cluster">
<title>cluster_ai_mcp</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M5665,-2085.32C5665,-2085.32 6275,-2085.32 6275,-2085.32 6281,-2085.32 6287,-2091.32 6287,-2097.32 6287,-2097.32 6287,-2434.32 6287,-2434.32 6287,-2440.32 6281,-2446.32 6275,-2446.32 6275,-2446.32 5665,-2446.32 5665,-2446.32 5659,-2446.32 5653,-2440.32 5653,-2434.32 5653,-2434.32 5653,-2097.32 5653,-2097.32 5653,-2091.32 5659,-2085.32 5665,-2085.32"/>
<text xml:space="preserve" text-anchor="middle" x="5716.45" y="-2428.82" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">AI &amp; Integrations</text>
</g>
<g id="clust12" class="cluster">
<title>cluster_system</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M8855,-2135.42C8855,-2135.42 9527,-2135.42 9527,-2135.42 9533,-2135.42 9539,-2141.42 9539,-2147.42 9539,-2147.42 9539,-2384.22 9539,-2384.22 9539,-2390.22 9533,-2396.22 9527,-2396.22 9527,-2396.22 8855,-2396.22 8855,-2396.22 8849,-2396.22 8843,-2390.22 8843,-2384.22 8843,-2384.22 8843,-2147.42 8843,-2147.42 8843,-2141.42 8849,-2135.42 8855,-2135.42"/>
<text xml:space="preserve" text-anchor="middle" x="8914.77" y="-2378.72" font-family="Helvetica,sans-Serif" font-size="15.00" fill="#e2e8f0">System &amp; Realtime</text>
</g>
<!-- Auth -->
<g id="node1" class="node">
<title>Auth</title>
<polygon fill="#33415c" stroke="none" points="9689.41,-1133.72 9689.41,-1164.72 10040.59,-1164.72 10040.59,-1133.72 9689.41,-1133.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9689.41,-1133.72 9689.41,-1164.72 10040.59,-1164.72 10040.59,-1133.72 9689.41,-1133.72"/>
<text xml:space="preserve" text-anchor="start" x="9851.34" y="-1149.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Auth</text>
<text xml:space="preserve" text-anchor="start" x="9854.99" y="-1140.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/auth</text>
<polygon fill="#2a3242" stroke="none" points="9689.41,-1111.72 9689.41,-1133.72 10040.59,-1133.72 10040.59,-1111.72 9689.41,-1111.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9689.41,-1111.72 9689.41,-1133.72 10040.59,-1133.72 10040.59,-1111.72 9689.41,-1111.72"/>
<polygon fill="#182b40" stroke="none" points="9690.41,-1112.72 9690.41,-1132.72 9728.41,-1132.72 9728.41,-1112.72 9690.41,-1112.72"/>
<text xml:space="preserve" text-anchor="start" x="9700.16" y="-1121.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9732.41" y="-1120.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/.well&#45;known/oauth&#45;authorization&#45;server</text>
<text xml:space="preserve" text-anchor="start" x="9929.31" y="-1119.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">OAuth 2.0 Authorization Ser…</text>
<polygon fill="#272e3d" stroke="none" points="9689.41,-1089.72 9689.41,-1111.72 10040.59,-1111.72 10040.59,-1089.72 9689.41,-1089.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9689.41,-1089.72 9689.41,-1111.72 10040.59,-1111.72 10040.59,-1089.72 9689.41,-1089.72"/>
<polygon fill="#182b40" stroke="none" points="9690.41,-1090.72 9690.41,-1110.72 9728.44,-1110.72 9728.44,-1090.72 9690.41,-1090.72"/>
<text xml:space="preserve" text-anchor="start" x="9700.17" y="-1099.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9732.44" y="-1098.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/.well&#45;known/oauth&#45;protected&#45;resource</text>
<text xml:space="preserve" text-anchor="start" x="9924.43" y="-1097.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">OAuth 2.0 Protected Resourc…</text>
<polygon fill="#2a3242" stroke="none" points="9689.41,-1067.72 9689.41,-1089.72 10040.59,-1089.72 10040.59,-1067.72 9689.41,-1067.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9689.41,-1067.72 9689.41,-1089.72 10040.59,-1089.72 10040.59,-1067.72 9689.41,-1067.72"/>
<polygon fill="#182b40" stroke="none" points="9690.41,-1068.72 9690.41,-1088.72 9806.24,-1088.72 9806.24,-1068.72 9690.41,-1068.72"/>
<text xml:space="preserve" text-anchor="start" x="9739.07" y="-1077.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9810.24" y="-1076.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/me</text>
<text xml:space="preserve" text-anchor="start" x="9991.13" y="-1075.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Current user</text>
<polygon fill="#272e3d" stroke="none" points="9689.41,-1045.72 9689.41,-1067.72 10040.59,-1067.72 10040.59,-1045.72 9689.41,-1045.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9689.41,-1045.72 9689.41,-1067.72 10040.59,-1067.72 10040.59,-1045.72 9689.41,-1045.72"/>
<polygon fill="#143826" stroke="none" points="9690.41,-1046.72 9690.41,-1066.72 9785.9,-1066.72 9785.9,-1046.72 9690.41,-1046.72"/>
<text xml:space="preserve" text-anchor="start" x="9725.9" y="-1055.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9789.9" y="-1054.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/login</text>
<text xml:space="preserve" text-anchor="start" x="9939.54" y="-1053.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Login with Google ID token</text>
<polygon fill="#2a3242" stroke="none" points="9689.41,-1023.72 9689.41,-1045.72 10040.59,-1045.72 10040.59,-1023.72 9689.41,-1023.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9689.41,-1023.72 9689.41,-1045.72 10040.59,-1045.72 10040.59,-1023.72 9689.41,-1023.72"/>
<polygon fill="#143826" stroke="none" points="9690.41,-1024.72 9690.41,-1044.72 9807.54,-1044.72 9807.54,-1024.72 9690.41,-1024.72"/>
<text xml:space="preserve" text-anchor="start" x="9736.72" y="-1033.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9811.54" y="-1032.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/logout</text>
<text xml:space="preserve" text-anchor="start" x="10011.12" y="-1031.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Logout</text>
<polygon fill="#272e3d" stroke="none" points="9689.41,-1001.72 9689.41,-1023.72 10040.59,-1023.72 10040.59,-1001.72 9689.41,-1001.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9689.41,-1001.72 9689.41,-1023.72 10040.59,-1023.72 10040.59,-1001.72 9689.41,-1001.72"/>
<polygon fill="#3b2c12" stroke="none" points="9690.41,-1002.72 9690.41,-1022.72 9770.55,-1022.72 9770.55,-1002.72 9690.41,-1002.72"/>
<text xml:space="preserve" text-anchor="start" x="9721.48" y="-1011.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="9774.55" y="-1010.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/selected&#45;company</text>
<text xml:space="preserve" text-anchor="start" x="9956.88" y="-1009.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set selected company</text>
</g>
<!-- Company -->
<g id="node2" class="node">
<title>Company</title>
<polygon fill="#33415c" stroke="none" points="10440.92,-714.92 10440.92,-749.92 10641.08,-749.92 10641.08,-714.92 10440.92,-714.92"/>
<polygon fill="none" stroke="#3f4c5f" points="10440.92,-714.92 10440.92,-749.92 10641.08,-749.92 10641.08,-714.92 10440.92,-714.92"/>
<polygon fill="#33415c" stroke="none" points="10442.92,-743.92 10442.92,-747.92 10475.62,-747.92 10475.62,-743.92 10442.92,-743.92"/>
<polygon fill="#33415c" stroke="none" points="10475.62,-743.92 10475.62,-747.92 10508.31,-747.92 10508.31,-743.92 10475.62,-743.92"/>
<polygon fill="#33415c" stroke="none" points="10508.31,-743.92 10508.31,-747.92 10541,-747.92 10541,-743.92 10508.31,-743.92"/>
<polygon fill="#33415c" stroke="none" points="10541,-743.92 10541,-747.92 10573.69,-747.92 10573.69,-743.92 10541,-743.92"/>
<polygon fill="#33415c" stroke="none" points="10573.69,-743.92 10573.69,-747.92 10606.38,-747.92 10606.38,-743.92 10573.69,-743.92"/>
<polygon fill="#33415c" stroke="none" points="10606.38,-743.92 10606.38,-747.92 10639.08,-747.92 10639.08,-743.92 10606.38,-743.92"/>
<text xml:space="preserve" text-anchor="start" x="10513.66" y="-731.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Company</text>
<text xml:space="preserve" text-anchor="start" x="10521.49" y="-721.82" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/company</text>
<polygon fill="#2a3242" stroke="none" points="10440.92,-692.92 10440.92,-714.92 10641.08,-714.92 10641.08,-692.92 10440.92,-692.92"/>
<polygon fill="none" stroke="#3f4c5f" points="10440.92,-692.92 10440.92,-714.92 10641.08,-714.92 10641.08,-692.92 10440.92,-692.92"/>
<polygon fill="#182b40" stroke="none" points="10441.92,-693.92 10441.92,-713.92 10509.26,-713.92 10509.26,-693.92 10441.92,-693.92"/>
<text xml:space="preserve" text-anchor="start" x="10466.34" y="-702.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="10513.26" y="-701.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="10582.72" y="-700.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List companies</text>
<polygon fill="#272e3d" stroke="none" points="10440.92,-670.92 10440.92,-692.92 10641.08,-692.92 10641.08,-670.92 10440.92,-670.92"/>
<polygon fill="none" stroke="#3f4c5f" points="10440.92,-670.92 10440.92,-692.92 10641.08,-692.92 10641.08,-670.92 10440.92,-670.92"/>
<polygon fill="#143826" stroke="none" points="10441.92,-671.92 10441.92,-691.92 10507.48,-691.92 10507.48,-671.92 10441.92,-671.92"/>
<text xml:space="preserve" text-anchor="start" x="10462.45" y="-680.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="10511.48" y="-679.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="10577.38" y="-678.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create company</text>
<polygon fill="#2a3242" stroke="none" points="10440.92,-648.92 10440.92,-670.92 10641.08,-670.92 10641.08,-648.92 10440.92,-648.92"/>
<polygon fill="none" stroke="#3f4c5f" points="10440.92,-648.92 10440.92,-670.92 10641.08,-670.92 10641.08,-648.92 10440.92,-648.92"/>
<polygon fill="#182b40" stroke="none" points="10441.92,-649.92 10441.92,-669.92 10480.4,-669.92 10480.4,-649.92 10441.92,-649.92"/>
<text xml:space="preserve" text-anchor="start" x="10451.91" y="-658.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="10484.4" y="-657.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/export</text>
<text xml:space="preserve" text-anchor="start" x="10526.69" y="-656.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Export company catalog as z…</text>
<polygon fill="#272e3d" stroke="none" points="10440.92,-626.92 10440.92,-648.92 10641.08,-648.92 10641.08,-626.92 10440.92,-626.92"/>
<polygon fill="none" stroke="#3f4c5f" points="10440.92,-626.92 10440.92,-648.92 10641.08,-648.92 10641.08,-626.92 10440.92,-626.92"/>
<polygon fill="#182b40" stroke="none" points="10441.92,-627.92 10441.92,-647.92 10491.48,-647.92 10491.48,-627.92 10441.92,-627.92"/>
<text xml:space="preserve" text-anchor="start" x="10457.45" y="-636.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="10495.48" y="-635.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/history</text>
<text xml:space="preserve" text-anchor="start" x="10562.71" y="-634.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get company history</text>
<polygon fill="#2a3242" stroke="none" points="10440.92,-604.92 10440.92,-626.92 10641.08,-626.92 10641.08,-604.92 10440.92,-604.92"/>
<polygon fill="none" stroke="#3f4c5f" points="10440.92,-604.92 10440.92,-626.92 10641.08,-626.92 10641.08,-604.92 10440.92,-604.92"/>
<polygon fill="#143826" stroke="none" points="10441.92,-605.92 10441.92,-625.92 10480.4,-625.92 10480.4,-605.92 10441.92,-605.92"/>
<text xml:space="preserve" text-anchor="start" x="10448.91" y="-614.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="10484.4" y="-613.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/export</text>
<text xml:space="preserve" text-anchor="start" x="10526.69" y="-612.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Export company catalog as z…</text>
<polygon fill="#272e3d" stroke="none" points="10440.92,-582.92 10440.92,-604.92 10641.08,-604.92 10641.08,-582.92 10440.92,-582.92"/>
<polygon fill="none" stroke="#3f4c5f" points="10440.92,-582.92 10440.92,-604.92 10641.08,-604.92 10641.08,-582.92 10440.92,-582.92"/>
<polygon fill="#143826" stroke="none" points="10441.92,-583.92 10441.92,-603.92 10484.36,-603.92 10484.36,-583.92 10441.92,-583.92"/>
<text xml:space="preserve" text-anchor="start" x="10450.89" y="-592.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="10488.36" y="-591.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/history</text>
<text xml:space="preserve" text-anchor="start" x="10541.37" y="-590.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add company history entry</text>
<polygon fill="#2a3242" stroke="none" points="10440.92,-560.92 10440.92,-582.92 10641.08,-582.92 10641.08,-560.92 10440.92,-560.92"/>
<polygon fill="none" stroke="#3f4c5f" points="10440.92,-560.92 10440.92,-582.92 10641.08,-582.92 10641.08,-560.92 10440.92,-560.92"/>
<polygon fill="#143826" stroke="none" points="10441.92,-561.92 10441.92,-581.92 10479.92,-581.92 10479.92,-561.92 10441.92,-561.92"/>
<text xml:space="preserve" text-anchor="start" x="10448.67" y="-570.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="10483.92" y="-569.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/import</text>
<text xml:space="preserve" text-anchor="start" x="10525.81" y="-568.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Import company catalog from…</text>
<polygon fill="#272e3d" stroke="none" points="10440.92,-538.92 10440.92,-560.92 10641.08,-560.92 10641.08,-538.92 10440.92,-538.92"/>
<polygon fill="none" stroke="#3f4c5f" points="10440.92,-538.92 10440.92,-560.92 10641.08,-560.92 10641.08,-538.92 10440.92,-538.92"/>
<polygon fill="#3b2c12" stroke="none" points="10441.92,-539.92 10441.92,-559.92 10501.33,-559.92 10501.33,-539.92 10441.92,-539.92"/>
<text xml:space="preserve" text-anchor="start" x="10462.63" y="-548.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="10505.33" y="-547.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="10575.6" y="-546.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update company</text>
<polygon fill="#2a3242" stroke="none" points="10440.92,-516.92 10440.92,-538.92 10641.08,-538.92 10641.08,-516.92 10440.92,-516.92"/>
<polygon fill="none" stroke="#3f4c5f" points="10440.92,-516.92 10440.92,-538.92 10641.08,-538.92 10641.08,-516.92 10440.92,-516.92"/>
<polygon fill="#3a181e" stroke="none" points="10441.92,-517.92 10441.92,-537.92 10504.56,-537.92 10504.56,-517.92 10441.92,-517.92"/>
<text xml:space="preserve" text-anchor="start" x="10455.49" y="-526.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="10508.56" y="-525.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="10578.27" y="-524.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete company</text>
</g>
<!-- CompanySetting -->
<g id="node3" class="node">
<title>CompanySetting</title>
<polygon fill="#33415c" stroke="none" points="10124.9,-1098.72 10124.9,-1133.72 10389.1,-1133.72 10389.1,-1098.72 10124.9,-1098.72"/>
<polygon fill="none" stroke="#3f4c5f" points="10124.9,-1098.72 10124.9,-1133.72 10389.1,-1133.72 10389.1,-1098.72 10124.9,-1098.72"/>
<polygon fill="#33415c" stroke="none" points="10126.9,-1127.72 10126.9,-1131.72 10387.1,-1131.72 10387.1,-1127.72 10126.9,-1127.72"/>
<text xml:space="preserve" text-anchor="start" x="10209.33" y="-1114.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">CompanySetting</text>
<text xml:space="preserve" text-anchor="start" x="10224.23" y="-1105.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/companysetting</text>
<polygon fill="#2a3242" stroke="none" points="10124.9,-1076.72 10124.9,-1098.72 10389.1,-1098.72 10389.1,-1076.72 10124.9,-1076.72"/>
<polygon fill="none" stroke="#3f4c5f" points="10124.9,-1076.72 10124.9,-1098.72 10389.1,-1098.72 10389.1,-1076.72 10124.9,-1076.72"/>
<polygon fill="#182b40" stroke="none" points="10125.9,-1077.72 10125.9,-1097.72 10180.25,-1097.72 10180.25,-1077.72 10125.9,-1077.72"/>
<text xml:space="preserve" text-anchor="start" x="10143.82" y="-1086.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="10184.25" y="-1085.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/company/setting</text>
<text xml:space="preserve" text-anchor="start" x="10307.17" y="-1084.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List company settings</text>
<polygon fill="#272e3d" stroke="none" points="10124.9,-1054.72 10124.9,-1076.72 10389.1,-1076.72 10389.1,-1054.72 10124.9,-1054.72"/>
<polygon fill="none" stroke="#3f4c5f" points="10124.9,-1054.72 10124.9,-1076.72 10389.1,-1076.72 10389.1,-1054.72 10124.9,-1054.72"/>
<polygon fill="#182b40" stroke="none" points="10125.9,-1055.72 10125.9,-1075.72 10163.9,-1075.72 10163.9,-1055.72 10125.9,-1055.72"/>
<text xml:space="preserve" text-anchor="start" x="10135.65" y="-1064.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="10167.9" y="-1063.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/company/setting/{key}</text>
<text xml:space="preserve" text-anchor="start" x="10285.38" y="-1062.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get company setting by key</text>
<polygon fill="#2a3242" stroke="none" points="10124.9,-1032.72 10124.9,-1054.72 10389.1,-1054.72 10389.1,-1032.72 10124.9,-1032.72"/>
<polygon fill="none" stroke="#3f4c5f" points="10124.9,-1032.72 10124.9,-1054.72 10389.1,-1054.72 10389.1,-1032.72 10124.9,-1032.72"/>
<polygon fill="#3b2c12" stroke="none" points="10125.9,-1033.72 10125.9,-1053.72 10168.79,-1053.72 10168.79,-1033.72 10125.9,-1033.72"/>
<text xml:space="preserve" text-anchor="start" x="10138.35" y="-1042.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="10172.79" y="-1041.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/company/setting/{key}</text>
<text xml:space="preserve" text-anchor="start" x="10300.06" y="-1040.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Upsert company setting</text>
</g>
<!-- Company&#45;&gt;CompanySetting -->
<g id="edge49" class="edge">
<title>Company:w&#45;&gt;CompanySetting:n</title>
<g id="a_edge49"><a xlink:title="Company → CompanySetting (settings)">
<path fill="none" stroke="#ff6b6b" stroke-width="1.4" d="M10432.13,-633.42C10325.77,-633.42 10388.83,-777.27 10297,-830.92 10279.28,-841.27 10218.85,-823.79 10204.98,-838.92 10123.87,-927.39 10349.21,-918.65 10397.1,-1028.72 10415.36,-1070.69 10429.35,-1099.23 10397.1,-1131.72 10377.39,-1151.57 10280.01,-1161.69 10260.43,-1140.96"/>
<polygon fill="#ff6b6b" stroke="#ff6b6b" stroke-width="1.4" points="10262.77,-1140.19 10257.81,-1134.67 10258.24,-1142.08 10262.77,-1140.19"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="10225.49" y="-841.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff6b6b"> &#160;settings &#160;</text>
</g>
<!-- Customergroup -->
<g id="node4" class="node">
<title>Customergroup</title>
<polygon fill="#33415c" stroke="none" points="9782.48,-380.12 9782.48,-415.12 9957.52,-415.12 9957.52,-380.12 9782.48,-380.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9782.48,-380.12 9782.48,-415.12 9957.52,-415.12 9957.52,-380.12 9782.48,-380.12"/>
<polygon fill="#33415c" stroke="none" points="9784.48,-409.12 9784.48,-413.12 9841.49,-413.12 9841.49,-409.12 9784.48,-409.12"/>
<polygon fill="#33415c" stroke="none" points="9841.49,-409.12 9841.49,-413.12 9898.51,-413.12 9898.51,-409.12 9841.49,-409.12"/>
<polygon fill="#33415c" stroke="none" points="9898.51,-409.12 9898.51,-413.12 9955.52,-413.12 9955.52,-409.12 9898.51,-409.12"/>
<text xml:space="preserve" text-anchor="start" x="9825" y="-396.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Customergroup</text>
<text xml:space="preserve" text-anchor="start" x="9838.74" y="-387.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/customergroup</text>
<polygon fill="#2a3242" stroke="none" points="9782.48,-358.12 9782.48,-380.12 9957.52,-380.12 9957.52,-358.12 9782.48,-358.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9782.48,-358.12 9782.48,-380.12 9957.52,-380.12 9957.52,-358.12 9782.48,-358.12"/>
<polygon fill="#182b40" stroke="none" points="9783.48,-359.12 9783.48,-379.12 9835.48,-379.12 9835.48,-359.12 9783.48,-359.12"/>
<text xml:space="preserve" text-anchor="start" x="9800.23" y="-367.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9839.48" y="-367.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9878.27" y="-365.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List customer groups</text>
<polygon fill="#272e3d" stroke="none" points="9782.48,-336.12 9782.48,-358.12 9957.52,-358.12 9957.52,-336.12 9782.48,-336.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9782.48,-336.12 9782.48,-358.12 9957.52,-358.12 9957.52,-336.12 9782.48,-336.12"/>
<polygon fill="#143826" stroke="none" points="9783.48,-337.12 9783.48,-357.12 9832.96,-357.12 9832.96,-337.12 9783.48,-337.12"/>
<text xml:space="preserve" text-anchor="start" x="9795.97" y="-345.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9836.96" y="-345.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9870.71" y="-343.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create customer group</text>
<polygon fill="#2a3242" stroke="none" points="9782.48,-314.12 9782.48,-336.12 9957.52,-336.12 9957.52,-314.12 9782.48,-314.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9782.48,-314.12 9782.48,-336.12 9957.52,-336.12 9957.52,-314.12 9782.48,-314.12"/>
<polygon fill="#3b2c12" stroke="none" points="9783.48,-315.12 9783.48,-335.12 9821.48,-335.12 9821.48,-315.12 9783.48,-315.12"/>
<text xml:space="preserve" text-anchor="start" x="9793.48" y="-323.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="9825.48" y="-323.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="9861.82" y="-321.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder customer groups</text>
<polygon fill="#272e3d" stroke="none" points="9782.48,-292.12 9782.48,-314.12 9957.52,-314.12 9957.52,-292.12 9782.48,-292.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9782.48,-292.12 9782.48,-314.12 9957.52,-314.12 9957.52,-292.12 9782.48,-292.12"/>
<polygon fill="#301c44" stroke="none" points="9783.48,-293.12 9783.48,-313.12 9826.81,-313.12 9826.81,-293.12 9783.48,-293.12"/>
<text xml:space="preserve" text-anchor="start" x="9789.64" y="-301.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="9830.81" y="-301.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9868.92" y="-299.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update customer group</text>
<polygon fill="#2a3242" stroke="none" points="9782.48,-270.12 9782.48,-292.12 9957.52,-292.12 9957.52,-270.12 9782.48,-270.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9782.48,-270.12 9782.48,-292.12 9957.52,-292.12 9957.52,-270.12 9782.48,-270.12"/>
<polygon fill="#3a181e" stroke="none" points="9783.48,-271.12 9783.48,-291.12 9830.04,-291.12 9830.04,-271.12 9783.48,-271.12"/>
<text xml:space="preserve" text-anchor="start" x="9789" y="-279.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="9834.04" y="-279.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9871.59" y="-277.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete customer group</text>
</g>
<!-- Company&#45;&gt;Customergroup -->
<g id="edge47" class="edge">
<title>Company:e&#45;&gt;Customergroup:n</title>
<g id="a_edge47"><a xlink:title="Company → Customergroup (poscustomergroup)">
<path fill="none" stroke="#66b3ff" stroke-width="1.4" d="M10649.87,-633.42C10703.43,-633.42 10684.25,-553.13 10648.87,-512.92 10543.91,-393.61 9949.66,-569.28 9927.64,-422.78"/>
<polygon fill="#66b3ff" stroke="#66b3ff" stroke-width="1.4" points="9930.12,-423.03 9927.17,-416.23 9925.23,-423.39 9930.12,-423.03"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="10007" y="-457.82" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#66b3ff"> &#160;poscustomergroup &#160;</text>
</g>
<!-- Category -->
<g id="node8" class="node">
<title>Category</title>
<polygon fill="#33415c" stroke="none" points="2959.2,-2321.32 2959.2,-2356.32 3152.8,-2356.32 3152.8,-2321.32 2959.2,-2321.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2959.2,-2321.32 2959.2,-2356.32 3152.8,-2356.32 3152.8,-2321.32 2959.2,-2321.32"/>
<polygon fill="#33415c" stroke="none" points="2961.2,-2350.32 2961.2,-2354.32 2992.8,-2354.32 2992.8,-2350.32 2961.2,-2350.32"/>
<polygon fill="#33415c" stroke="none" points="2992.8,-2350.32 2992.8,-2354.32 3024.4,-2354.32 3024.4,-2350.32 2992.8,-2350.32"/>
<polygon fill="#33415c" stroke="none" points="3024.4,-2350.32 3024.4,-2354.32 3056,-2354.32 3056,-2350.32 3024.4,-2350.32"/>
<polygon fill="#33415c" stroke="none" points="3056,-2350.32 3056,-2354.32 3087.6,-2354.32 3087.6,-2350.32 3056,-2350.32"/>
<polygon fill="#33415c" stroke="none" points="3087.6,-2350.32 3087.6,-2354.32 3119.2,-2354.32 3119.2,-2350.32 3087.6,-2350.32"/>
<polygon fill="#33415c" stroke="none" points="3119.2,-2350.32 3119.2,-2354.32 3150.8,-2354.32 3150.8,-2350.32 3119.2,-2350.32"/>
<text xml:space="preserve" text-anchor="start" x="3029.99" y="-2337.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Category</text>
<text xml:space="preserve" text-anchor="start" x="3037.49" y="-2328.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/category</text>
<polygon fill="#2a3242" stroke="none" points="2959.2,-2299.32 2959.2,-2321.32 3152.8,-2321.32 3152.8,-2299.32 2959.2,-2299.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2959.2,-2299.32 2959.2,-2321.32 3152.8,-2321.32 3152.8,-2299.32 2959.2,-2299.32"/>
<polygon fill="#143826" stroke="none" points="2960.2,-2300.32 2960.2,-2320.32 3024.17,-2320.32 3024.17,-2300.32 2960.2,-2300.32"/>
<text xml:space="preserve" text-anchor="start" x="2979.93" y="-2308.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3028.17" y="-2308.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3090.88" y="-2307.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create category</text>
<polygon fill="#272e3d" stroke="none" points="2959.2,-2277.32 2959.2,-2299.32 3152.8,-2299.32 3152.8,-2277.32 2959.2,-2277.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2959.2,-2277.32 2959.2,-2299.32 3152.8,-2299.32 3152.8,-2277.32 2959.2,-2277.32"/>
<polygon fill="#182b40" stroke="none" points="2960.2,-2278.32 2960.2,-2298.32 3002.46,-2298.32 3002.46,-2278.32 2960.2,-2278.32"/>
<text xml:space="preserve" text-anchor="start" x="2972.08" y="-2286.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3006.46" y="-2286.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/articles</text>
<text xml:space="preserve" text-anchor="start" x="3080.22" y="-2285.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Articles in category</text>
<polygon fill="#2a3242" stroke="none" points="2959.2,-2255.32 2959.2,-2277.32 3152.8,-2277.32 3152.8,-2255.32 2959.2,-2255.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2959.2,-2255.32 2959.2,-2277.32 3152.8,-2277.32 3152.8,-2255.32 2959.2,-2255.32"/>
<polygon fill="#182b40" stroke="none" points="2960.2,-2256.32 2960.2,-2276.32 2998.2,-2276.32 2998.2,-2256.32 2960.2,-2256.32"/>
<text xml:space="preserve" text-anchor="start" x="2969.95" y="-2264.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3002.2" y="-2264.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/export.zip</text>
<text xml:space="preserve" text-anchor="start" x="3060.21" y="-2263.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Export categories as ZIP</text>
<polygon fill="#272e3d" stroke="none" points="2959.2,-2233.32 2959.2,-2255.32 3152.8,-2255.32 3152.8,-2233.32 2959.2,-2233.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2959.2,-2233.32 2959.2,-2255.32 3152.8,-2255.32 3152.8,-2233.32 2959.2,-2233.32"/>
<polygon fill="#182b40" stroke="none" points="2960.2,-2234.32 2960.2,-2254.32 3020.87,-2254.32 3020.87,-2234.32 2960.2,-2234.32"/>
<text xml:space="preserve" text-anchor="start" x="2981.28" y="-2242.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3024.87" y="-2242.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/tree</text>
<text xml:space="preserve" text-anchor="start" x="3099.33" y="-2241.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Category tree</text>
<polygon fill="#2a3242" stroke="none" points="2959.2,-2211.32 2959.2,-2233.32 3152.8,-2233.32 3152.8,-2211.32 2959.2,-2211.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2959.2,-2211.32 2959.2,-2233.32 3152.8,-2233.32 3152.8,-2211.32 2959.2,-2211.32"/>
<polygon fill="#143826" stroke="none" points="2960.2,-2212.32 2960.2,-2232.32 3003.31,-2232.32 3003.31,-2212.32 2960.2,-2212.32"/>
<text xml:space="preserve" text-anchor="start" x="2969.5" y="-2220.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3007.31" y="-2220.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/image</text>
<text xml:space="preserve" text-anchor="start" x="3076.65" y="-2219.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add category image</text>
<polygon fill="#272e3d" stroke="none" points="2959.2,-2189.32 2959.2,-2211.32 3152.8,-2211.32 3152.8,-2189.32 2959.2,-2189.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2959.2,-2189.32 2959.2,-2211.32 3152.8,-2211.32 3152.8,-2189.32 2959.2,-2189.32"/>
<polygon fill="#3b2c12" stroke="none" points="2960.2,-2190.32 2960.2,-2210.32 3003.64,-2210.32 3003.64,-2190.32 2960.2,-2190.32"/>
<text xml:space="preserve" text-anchor="start" x="2972.92" y="-2198.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3007.64" y="-2198.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="3054.86" y="-2197.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder sibling categories</text>
<polygon fill="#2a3242" stroke="none" points="2959.2,-2167.32 2959.2,-2189.32 3152.8,-2189.32 3152.8,-2167.32 2959.2,-2167.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2959.2,-2167.32 2959.2,-2189.32 3152.8,-2189.32 3152.8,-2167.32 2959.2,-2167.32"/>
<polygon fill="#301c44" stroke="none" points="2960.2,-2168.32 2960.2,-2188.32 3001.27,-2188.32 3001.27,-2168.32 2960.2,-2168.32"/>
<text xml:space="preserve" text-anchor="start" x="2965.24" y="-2176.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="3005.27" y="-2176.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3038.86" y="-2175.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update category (rename or …</text>
<polygon fill="#272e3d" stroke="none" points="2959.2,-2145.32 2959.2,-2167.32 3152.8,-2167.32 3152.8,-2145.32 2959.2,-2145.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2959.2,-2145.32 2959.2,-2167.32 3152.8,-2167.32 3152.8,-2145.32 2959.2,-2145.32"/>
<polygon fill="#3a181e" stroke="none" points="2960.2,-2146.32 2960.2,-2166.32 3021.24,-2166.32 3021.24,-2146.32 2960.2,-2146.32"/>
<text xml:space="preserve" text-anchor="start" x="2972.97" y="-2154.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3025.24" y="-2154.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3091.77" y="-2153.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete category</text>
<polygon fill="#2a3242" stroke="none" points="2959.2,-2123.32 2959.2,-2145.32 3152.8,-2145.32 3152.8,-2123.32 2959.2,-2123.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2959.2,-2123.32 2959.2,-2145.32 3152.8,-2145.32 3152.8,-2123.32 2959.2,-2123.32"/>
<polygon fill="#3a181e" stroke="none" points="2960.2,-2124.32 2960.2,-2144.32 3002.68,-2144.32 3002.68,-2124.32 2960.2,-2124.32"/>
<text xml:space="preserve" text-anchor="start" x="2963.69" y="-2132.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3006.68" y="-2132.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/image</text>
<text xml:space="preserve" text-anchor="start" x="3067.76" y="-2131.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete category image</text>
</g>
<!-- Company&#45;&gt;Category -->
<g id="edge48" class="edge">
<title>Company:w&#45;&gt;Category:n</title>
<g id="a_edge48"><a xlink:title="Company → Category (root_category)">
<path fill="none" stroke="#c79bff" stroke-width="1.4" d="M10432.13,-633.42C10187.35,-633.42 10157.35,-779.62 9918,-830.92 9855.32,-844.35 9837.97,-834.87 9774,-838.92 9568.12,-851.93 9516.16,-850.11 9311,-871.72 7797.11,-1031.15 7437.31,-1237.09 5919,-1346.72 5742.56,-1359.46 4503.82,-1350.8 4326.97,-1354.72 4204.69,-1357.42 4174.26,-1362.49 4052,-1365.52 4022.1,-1366.26 1920.04,-1366.26 1899,-1387.52 1800.67,-1486.86 1809.64,-1909.03 1899,-2016.52 1988.93,-2124.68 3068.46,-2013.2 3160.8,-2119.32 3229.36,-2198.11 3233.21,-2279.05 3160.8,-2354.32 3155.7,-2359.61 3146.55,-2363.24 3140.63,-2362.15"/>
<polygon fill="#c79bff" stroke="#c79bff" stroke-width="1.4" points="3142.69,-2360.8 3136.35,-2356.95 3138.9,-2363.91 3142.69,-2360.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4359.48" y="-1357.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#c79bff"> &#160;root_category &#160;</text>
</g>
<!-- Number -->
<g id="node5" class="node">
<title>Number</title>
<polygon fill="#33415c" stroke="none" points="10473.24,-1089.72 10473.24,-1120.72 10640.76,-1120.72 10640.76,-1089.72 10473.24,-1089.72"/>
<polygon fill="none" stroke="#3f4c5f" points="10473.24,-1089.72 10473.24,-1120.72 10640.76,-1120.72 10640.76,-1089.72 10473.24,-1089.72"/>
<text xml:space="preserve" text-anchor="start" x="10534.33" y="-1105.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Number</text>
<text xml:space="preserve" text-anchor="start" x="10540.49" y="-1096.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/number</text>
<polygon fill="#2a3242" stroke="none" points="10473.24,-1067.72 10473.24,-1089.72 10640.76,-1089.72 10640.76,-1067.72 10473.24,-1067.72"/>
<polygon fill="none" stroke="#3f4c5f" points="10473.24,-1067.72 10473.24,-1089.72 10640.76,-1089.72 10640.76,-1067.72 10473.24,-1067.72"/>
<polygon fill="#182b40" stroke="none" points="10474.24,-1068.72 10474.24,-1088.72 10520.92,-1088.72 10520.92,-1068.72 10474.24,-1068.72"/>
<text xml:space="preserve" text-anchor="start" x="10488.33" y="-1077.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="10524.92" y="-1076.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="10553.04" y="-1075.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List number sequences</text>
<polygon fill="#272e3d" stroke="none" points="10473.24,-1045.72 10473.24,-1067.72 10640.76,-1067.72 10640.76,-1045.72 10473.24,-1045.72"/>
<polygon fill="none" stroke="#3f4c5f" points="10473.24,-1045.72 10473.24,-1067.72 10640.76,-1067.72 10640.76,-1045.72 10473.24,-1045.72"/>
<polygon fill="#301c44" stroke="none" points="10474.24,-1046.72 10474.24,-1066.72 10512.24,-1066.72 10512.24,-1046.72 10474.24,-1046.72"/>
<text xml:space="preserve" text-anchor="start" x="10477.75" y="-1055.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="10516.24" y="-1054.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="10543.69" y="-1053.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update number sequence</text>
</g>
<!-- Number&#45;&gt;Company -->
<g id="edge50" class="edge">
<title>Number:w&#45;&gt;Company:n</title>
<g id="a_edge50"><a xlink:title="Number → Company (companyId)">
<path fill="none" stroke="#6bdf9a" stroke-width="1.4" d="M10472.24,-1078.72C10378.44,-1078.72 10499.35,-935.97 10431,-871.72 10377.47,-821.39 10223.88,-896.92 10268.97,-838.92 10271.8,-835.28 10561.28,-768.2 10614.41,-752.11"/>
<polygon fill="#6bdf9a" stroke="#6bdf9a" stroke-width="1.4" points="10615.1,-754.47 10620.75,-749.68 10613.34,-749.9 10615.1,-754.47"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="10295.99" y="-841.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#6bdf9a"> &#160;companyId &#160;</text>
</g>
<!-- Entity -->
<g id="node6" class="node">
<title>Entity</title>
<polygon fill="#33415c" stroke="none" points="3961.32,-1219.72 3961.32,-1254.72 4202.68,-1254.72 4202.68,-1219.72 3961.32,-1219.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-1219.72 3961.32,-1254.72 4202.68,-1254.72 4202.68,-1219.72 3961.32,-1219.72"/>
<polygon fill="#33415c" stroke="none" points="3963.32,-1248.72 3963.32,-1252.72 4022.66,-1252.72 4022.66,-1248.72 3963.32,-1248.72"/>
<polygon fill="#33415c" stroke="none" points="4022.66,-1248.72 4022.66,-1252.72 4082,-1252.72 4082,-1248.72 4022.66,-1248.72"/>
<polygon fill="#33415c" stroke="none" points="4082,-1248.72 4082,-1252.72 4141.34,-1252.72 4141.34,-1248.72 4082,-1248.72"/>
<polygon fill="#33415c" stroke="none" points="4141.34,-1248.72 4141.34,-1252.72 4200.68,-1252.72 4200.68,-1248.72 4141.34,-1248.72"/>
<text xml:space="preserve" text-anchor="start" x="4065.33" y="-1235.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Entity</text>
<text xml:space="preserve" text-anchor="start" x="4069.99" y="-1226.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/entity</text>
<polygon fill="#2a3242" stroke="none" points="3961.32,-1197.72 3961.32,-1219.72 4202.68,-1219.72 4202.68,-1197.72 3961.32,-1197.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-1197.72 3961.32,-1219.72 4202.68,-1219.72 4202.68,-1197.72 3961.32,-1197.72"/>
<polygon fill="#182b40" stroke="none" points="3962.32,-1198.72 3962.32,-1218.72 4047.84,-1218.72 4047.84,-1198.72 3962.32,-1198.72"/>
<text xml:space="preserve" text-anchor="start" x="3995.83" y="-1207.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4051.84" y="-1206.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="4157.66" y="-1205.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List entities</text>
<polygon fill="#272e3d" stroke="none" points="3961.32,-1175.72 3961.32,-1197.72 4202.68,-1197.72 4202.68,-1175.72 3961.32,-1175.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-1175.72 3961.32,-1197.72 4202.68,-1197.72 4202.68,-1175.72 3961.32,-1175.72"/>
<polygon fill="#143826" stroke="none" points="3962.32,-1176.72 3962.32,-1196.72 4046.06,-1196.72 4046.06,-1176.72 3962.32,-1176.72"/>
<text xml:space="preserve" text-anchor="start" x="3991.94" y="-1185.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="4050.06" y="-1184.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="4152.32" y="-1183.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create entity</text>
<polygon fill="#2a3242" stroke="none" points="3961.32,-1153.72 3961.32,-1175.72 4202.68,-1175.72 4202.68,-1153.72 3961.32,-1153.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-1153.72 3961.32,-1175.72 4202.68,-1175.72 4202.68,-1153.72 3961.32,-1153.72"/>
<polygon fill="#182b40" stroke="none" points="3962.32,-1154.72 3962.32,-1174.72 4008.72,-1174.72 4008.72,-1154.72 3962.32,-1154.72"/>
<text xml:space="preserve" text-anchor="start" x="3976.27" y="-1163.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4012.72" y="-1162.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{entityId}/address</text>
<text xml:space="preserve" text-anchor="start" x="4124.75" y="-1161.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List entity addresses</text>
<polygon fill="#272e3d" stroke="none" points="3961.32,-1131.72 3961.32,-1153.72 4202.68,-1153.72 4202.68,-1131.72 3961.32,-1131.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-1131.72 3961.32,-1153.72 4202.68,-1153.72 4202.68,-1131.72 3961.32,-1131.72"/>
<polygon fill="#182b40" stroke="none" points="3962.32,-1132.72 3962.32,-1152.72 4012.02,-1152.72 4012.02,-1132.72 3962.32,-1132.72"/>
<text xml:space="preserve" text-anchor="start" x="3977.92" y="-1141.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4016.02" y="-1140.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{entityId}/contact</text>
<text xml:space="preserve" text-anchor="start" x="4131.87" y="-1139.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List entity contacts</text>
<polygon fill="#2a3242" stroke="none" points="3961.32,-1109.72 3961.32,-1131.72 4202.68,-1131.72 4202.68,-1109.72 3961.32,-1109.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-1109.72 3961.32,-1131.72 4202.68,-1131.72 4202.68,-1109.72 3961.32,-1109.72"/>
<polygon fill="#182b40" stroke="none" points="3962.32,-1110.72 3962.32,-1130.72 4044.21,-1130.72 4044.21,-1110.72 3962.32,-1110.72"/>
<text xml:space="preserve" text-anchor="start" x="3994.02" y="-1119.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4048.21" y="-1118.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4163.44" y="-1117.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get entity</text>
<polygon fill="#272e3d" stroke="none" points="3961.32,-1087.72 3961.32,-1109.72 4202.68,-1109.72 4202.68,-1087.72 3961.32,-1087.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-1087.72 3961.32,-1109.72 4202.68,-1109.72 4202.68,-1087.72 3961.32,-1087.72"/>
<polygon fill="#182b40" stroke="none" points="3962.32,-1088.72 3962.32,-1108.72 4007.65,-1108.72 4007.65,-1088.72 3962.32,-1088.72"/>
<text xml:space="preserve" text-anchor="start" x="3975.73" y="-1097.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4011.65" y="-1096.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/next&#45;number</text>
<text xml:space="preserve" text-anchor="start" x="4097.63" y="-1095.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Peek next customer number</text>
<polygon fill="#2a3242" stroke="none" points="3961.32,-1065.72 3961.32,-1087.72 4202.68,-1087.72 4202.68,-1065.72 3961.32,-1065.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-1065.72 3961.32,-1087.72 4202.68,-1087.72 4202.68,-1065.72 3961.32,-1065.72"/>
<polygon fill="#143826" stroke="none" points="3962.32,-1066.72 3962.32,-1086.72 4007.68,-1086.72 4007.68,-1066.72 3962.32,-1066.72"/>
<text xml:space="preserve" text-anchor="start" x="3972.75" y="-1075.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="4011.68" y="-1074.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{entityId}/address</text>
<text xml:space="preserve" text-anchor="start" x="4121.64" y="-1073.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create entity address</text>
<polygon fill="#272e3d" stroke="none" points="3961.32,-1043.72 3961.32,-1065.72 4202.68,-1065.72 4202.68,-1043.72 3961.32,-1043.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-1043.72 3961.32,-1065.72 4202.68,-1065.72 4202.68,-1043.72 3961.32,-1043.72"/>
<polygon fill="#143826" stroke="none" points="3962.32,-1044.72 3962.32,-1064.72 4009.5,-1064.72 4009.5,-1044.72 3962.32,-1044.72"/>
<text xml:space="preserve" text-anchor="start" x="3973.66" y="-1053.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="4013.5" y="-1052.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{entityId}/contact</text>
<text xml:space="preserve" text-anchor="start" x="4124.31" y="-1051.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create entity contact</text>
<polygon fill="#2a3242" stroke="none" points="3961.32,-1021.72 3961.32,-1043.72 4202.68,-1043.72 4202.68,-1021.72 3961.32,-1021.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-1021.72 3961.32,-1043.72 4202.68,-1043.72 4202.68,-1021.72 3961.32,-1021.72"/>
<polygon fill="#301c44" stroke="none" points="3962.32,-1022.72 3962.32,-1042.72 4000.6,-1042.72 4000.6,-1022.72 3962.32,-1022.72"/>
<text xml:space="preserve" text-anchor="start" x="3965.96" y="-1031.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="4004.6" y="-1030.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{entityId}/address/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4119.85" y="-1029.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update entity address</text>
<polygon fill="#272e3d" stroke="none" points="3961.32,-999.72 3961.32,-1021.72 4202.68,-1021.72 4202.68,-999.72 3961.32,-999.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-999.72 3961.32,-1021.72 4202.68,-1021.72 4202.68,-999.72 3961.32,-999.72"/>
<polygon fill="#301c44" stroke="none" points="3962.32,-1000.72 3962.32,-1020.72 4002.42,-1020.72 4002.42,-1000.72 3962.32,-1000.72"/>
<text xml:space="preserve" text-anchor="start" x="3966.87" y="-1009.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="4006.42" y="-1008.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{entityId}/contact/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4122.52" y="-1007.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update entity contact</text>
<polygon fill="#2a3242" stroke="none" points="3961.32,-977.72 3961.32,-999.72 4202.68,-999.72 4202.68,-977.72 3961.32,-977.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-977.72 3961.32,-999.72 4202.68,-999.72 4202.68,-977.72 3961.32,-977.72"/>
<polygon fill="#301c44" stroke="none" points="3962.32,-978.72 3962.32,-998.72 4039.91,-998.72 4039.91,-978.72 3962.32,-978.72"/>
<text xml:space="preserve" text-anchor="start" x="3985.62" y="-987.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="4043.91" y="-986.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4150.54" y="-985.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update entity</text>
<polygon fill="#272e3d" stroke="none" points="3961.32,-955.72 3961.32,-977.72 4202.68,-977.72 4202.68,-955.72 3961.32,-955.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-955.72 3961.32,-977.72 4202.68,-977.72 4202.68,-955.72 3961.32,-955.72"/>
<polygon fill="#3a181e" stroke="none" points="3962.32,-956.72 3962.32,-976.72 4003.83,-976.72 4003.83,-956.72 3962.32,-956.72"/>
<text xml:space="preserve" text-anchor="start" x="3965.32" y="-965.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="4007.83" y="-964.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{entityId}/address/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4122.53" y="-963.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete entity address</text>
<polygon fill="#2a3242" stroke="none" points="3961.32,-933.72 3961.32,-955.72 4202.68,-955.72 4202.68,-933.72 3961.32,-933.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-933.72 3961.32,-955.72 4202.68,-955.72 4202.68,-933.72 3961.32,-933.72"/>
<polygon fill="#3a181e" stroke="none" points="3962.32,-934.72 3962.32,-954.72 4005.65,-954.72 4005.65,-934.72 3962.32,-934.72"/>
<text xml:space="preserve" text-anchor="start" x="3966.23" y="-943.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="4009.65" y="-942.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{entityId}/contact/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4125.19" y="-941.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete entity contact</text>
<polygon fill="#272e3d" stroke="none" points="3961.32,-911.72 3961.32,-933.72 4202.68,-933.72 4202.68,-911.72 3961.32,-911.72"/>
<polygon fill="none" stroke="#3f4c5f" points="3961.32,-911.72 3961.32,-933.72 4202.68,-933.72 4202.68,-911.72 3961.32,-911.72"/>
<polygon fill="#3a181e" stroke="none" points="3962.32,-912.72 3962.32,-932.72 4043.14,-932.72 4043.14,-912.72 3962.32,-912.72"/>
<text xml:space="preserve" text-anchor="start" x="3984.98" y="-921.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="4047.14" y="-920.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4153.21" y="-919.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete entity</text>
</g>
<!-- Entity&#45;&gt;Customergroup -->
<g id="edge46" class="edge">
<title>Entity:e&#45;&gt;Customergroup:n</title>
<g id="a_edge46"><a xlink:title="Entity → Customergroup (customergroupId)">
<path fill="none" stroke="#56d68a" stroke-width="1.4" d="M4203.68,-1186.72C4460.08,-1186.72 4445.02,-956.52 4687,-871.72 6356.77,-286.54 6885.57,-626.62 8649.46,-487.92 8714.67,-482.79 9785.93,-482.1 9865.35,-421.4"/>
<polygon fill="#56d68a" stroke="#56d68a" stroke-width="1.4" points="9867.16,-423.12 9868.86,-415.9 9863.03,-420.49 9867.16,-423.12"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="8688.23" y="-630.72" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#56d68a"> &#160;customergroupId &#160;</text>
</g>
<!-- Article -->
<g id="node7" class="node">
<title>Article</title>
<polygon fill="#33415c" stroke="none" points="3094.6,-1977.52 3094.6,-2012.52 3379.4,-2012.52 3379.4,-1977.52 3094.6,-1977.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1977.52 3094.6,-2012.52 3379.4,-2012.52 3379.4,-1977.52 3094.6,-1977.52"/>
<polygon fill="#33415c" stroke="none" points="3096.6,-2006.52 3096.6,-2010.52 3118.2,-2010.52 3118.2,-2006.52 3096.6,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3118.2,-2006.52 3118.2,-2010.52 3139.8,-2010.52 3139.8,-2006.52 3118.2,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3139.8,-2006.52 3139.8,-2010.52 3161.4,-2010.52 3161.4,-2006.52 3139.8,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3161.4,-2006.52 3161.4,-2010.52 3183,-2010.52 3183,-2006.52 3161.4,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3183,-2006.52 3183,-2010.52 3204.6,-2010.52 3204.6,-2006.52 3183,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3204.6,-2006.52 3204.6,-2010.52 3226.2,-2010.52 3226.2,-2006.52 3204.6,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3226.2,-2006.52 3226.2,-2010.52 3247.8,-2010.52 3247.8,-2006.52 3226.2,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3247.8,-2006.52 3247.8,-2010.52 3269.4,-2010.52 3269.4,-2006.52 3247.8,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3269.4,-2006.52 3269.4,-2010.52 3291,-2010.52 3291,-2006.52 3269.4,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3291,-2006.52 3291,-2010.52 3312.6,-2010.52 3312.6,-2006.52 3291,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3312.6,-2006.52 3312.6,-2010.52 3334.2,-2010.52 3334.2,-2006.52 3312.6,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3334.2,-2006.52 3334.2,-2010.52 3355.8,-2010.52 3355.8,-2006.52 3334.2,-2006.52"/>
<polygon fill="#33415c" stroke="none" points="3355.8,-2006.52 3355.8,-2010.52 3377.4,-2010.52 3377.4,-2006.52 3355.8,-2006.52"/>
<text xml:space="preserve" text-anchor="start" x="3218.33" y="-1993.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Article</text>
<text xml:space="preserve" text-anchor="start" x="3223.75" y="-1984.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/article</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1955.52 3094.6,-1977.52 3379.4,-1977.52 3379.4,-1955.52 3094.6,-1955.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1955.52 3094.6,-1977.52 3379.4,-1977.52 3379.4,-1955.52 3094.6,-1955.52"/>
<polygon fill="#143826" stroke="none" points="3095.6,-1956.52 3095.6,-1976.52 3179.3,-1976.52 3179.3,-1956.52 3095.6,-1956.52"/>
<text xml:space="preserve" text-anchor="start" x="3125.2" y="-1964.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3183.3" y="-1964.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3285.47" y="-1963.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create article in category</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1933.52 3094.6,-1955.52 3379.4,-1955.52 3379.4,-1933.52 3094.6,-1933.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1933.52 3094.6,-1955.52 3379.4,-1955.52 3379.4,-1933.52 3094.6,-1933.52"/>
<polygon fill="#182b40" stroke="none" points="3095.6,-1934.52 3095.6,-1954.52 3178.67,-1954.52 3178.67,-1934.52 3095.6,-1934.52"/>
<text xml:space="preserve" text-anchor="start" x="3127.88" y="-1942.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3182.67" y="-1942.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}</text>
<text xml:space="preserve" text-anchor="start" x="3308.6" y="-1941.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get article by SKU</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1911.52 3094.6,-1933.52 3379.4,-1933.52 3379.4,-1911.52 3094.6,-1911.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1911.52 3094.6,-1933.52 3379.4,-1933.52 3379.4,-1911.52 3094.6,-1911.52"/>
<polygon fill="#182b40" stroke="none" points="3095.6,-1912.52 3095.6,-1932.52 3150.95,-1932.52 3150.95,-1912.52 3095.6,-1912.52"/>
<text xml:space="preserve" text-anchor="start" x="3114.03" y="-1920.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3154.95" y="-1920.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/articlelist</text>
<text xml:space="preserve" text-anchor="start" x="3272.14" y="-1919.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get Stückliste (bundle item…</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1889.52 3094.6,-1911.52 3379.4,-1911.52 3379.4,-1889.52 3094.6,-1889.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1889.52 3094.6,-1911.52 3379.4,-1911.52 3379.4,-1889.52 3094.6,-1889.52"/>
<polygon fill="#182b40" stroke="none" points="3095.6,-1890.52 3095.6,-1910.52 3156.03,-1910.52 3156.03,-1890.52 3095.6,-1890.52"/>
<text xml:space="preserve" text-anchor="start" x="3116.57" y="-1898.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3160.03" y="-1898.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/children</text>
<text xml:space="preserve" text-anchor="start" x="3282.36" y="-1897.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List child articles of a pa…</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1867.52 3094.6,-1889.52 3379.4,-1889.52 3379.4,-1867.52 3094.6,-1867.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1867.52 3094.6,-1889.52 3379.4,-1889.52 3379.4,-1867.52 3094.6,-1867.52"/>
<polygon fill="#182b40" stroke="none" points="3095.6,-1868.52 3095.6,-1888.52 3158.03,-1888.52 3158.03,-1868.52 3095.6,-1868.52"/>
<text xml:space="preserve" text-anchor="start" x="3117.57" y="-1876.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3162.03" y="-1876.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/history</text>
<text xml:space="preserve" text-anchor="start" x="3282.81" y="-1875.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get article history by SKU</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1845.52 3094.6,-1867.52 3379.4,-1867.52 3379.4,-1845.52 3094.6,-1845.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1845.52 3094.6,-1867.52 3379.4,-1867.52 3379.4,-1845.52 3094.6,-1845.52"/>
<polygon fill="#182b40" stroke="none" points="3095.6,-1846.52 3095.6,-1866.52 3151.55,-1866.52 3151.55,-1846.52 3095.6,-1846.52"/>
<text xml:space="preserve" text-anchor="start" x="3114.33" y="-1854.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3155.55" y="-1854.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/optionslist</text>
<text xml:space="preserve" text-anchor="start" x="3280.58" y="-1853.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get options list for an art…</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1823.52 3094.6,-1845.52 3379.4,-1845.52 3379.4,-1823.52 3094.6,-1823.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1823.52 3094.6,-1845.52 3379.4,-1845.52 3379.4,-1823.52 3094.6,-1823.52"/>
<polygon fill="#182b40" stroke="none" points="3095.6,-1824.52 3095.6,-1844.52 3167.86,-1844.52 3167.86,-1824.52 3095.6,-1824.52"/>
<text xml:space="preserve" text-anchor="start" x="3122.48" y="-1832.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3171.86" y="-1832.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/export.zip</text>
<text xml:space="preserve" text-anchor="start" x="3298.38" y="-1831.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Export articles as ZIP</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1801.52 3094.6,-1823.52 3379.4,-1823.52 3379.4,-1801.52 3094.6,-1801.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1801.52 3094.6,-1823.52 3379.4,-1823.52 3379.4,-1801.52 3094.6,-1801.52"/>
<polygon fill="#182b40" stroke="none" points="3095.6,-1802.52 3095.6,-1822.52 3161.81,-1822.52 3161.81,-1802.52 3095.6,-1802.52"/>
<text xml:space="preserve" text-anchor="start" x="3119.46" y="-1810.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3165.81" y="-1810.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/history</text>
<text xml:space="preserve" text-anchor="start" x="3266.36" y="-1809.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Query company&#45;wide article …</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1779.52 3094.6,-1801.52 3379.4,-1801.52 3379.4,-1779.52 3094.6,-1779.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1779.52 3094.6,-1801.52 3379.4,-1801.52 3379.4,-1779.52 3094.6,-1779.52"/>
<polygon fill="#143826" stroke="none" points="3095.6,-1780.52 3095.6,-1800.52 3151.28,-1800.52 3151.28,-1780.52 3095.6,-1780.52"/>
<text xml:space="preserve" text-anchor="start" x="3111.19" y="-1788.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3155.28" y="-1788.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/children</text>
<text xml:space="preserve" text-anchor="start" x="3268.11" y="-1787.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create and attach a new chi…</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1757.52 3094.6,-1779.52 3379.4,-1779.52 3379.4,-1757.52 3094.6,-1757.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1757.52 3094.6,-1779.52 3379.4,-1779.52 3379.4,-1757.52 3094.6,-1757.52"/>
<polygon fill="#143826" stroke="none" points="3095.6,-1758.52 3095.6,-1778.52 3169.44,-1778.52 3169.44,-1758.52 3095.6,-1758.52"/>
<text xml:space="preserve" text-anchor="start" x="3120.27" y="-1766.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3173.44" y="-1766.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/image</text>
<text xml:space="preserve" text-anchor="start" x="3312.59" y="-1765.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add article image</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1735.52 3094.6,-1757.52 3379.4,-1757.52 3379.4,-1735.52 3094.6,-1735.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1735.52 3094.6,-1757.52 3379.4,-1757.52 3379.4,-1735.52 3094.6,-1735.52"/>
<polygon fill="#143826" stroke="none" points="3095.6,-1736.52 3095.6,-1756.52 3153.62,-1756.52 3153.62,-1736.52 3095.6,-1736.52"/>
<text xml:space="preserve" text-anchor="start" x="3112.36" y="-1744.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3157.62" y="-1744.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/parent</text>
<text xml:space="preserve" text-anchor="start" x="3266.78" y="-1743.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Toggle parent mode for an a…</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1713.52 3094.6,-1735.52 3379.4,-1735.52 3379.4,-1713.52 3094.6,-1713.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1713.52 3094.6,-1735.52 3379.4,-1735.52 3379.4,-1713.52 3094.6,-1713.52"/>
<polygon fill="#143826" stroke="none" points="3095.6,-1714.52 3095.6,-1734.52 3172.56,-1734.52 3172.56,-1714.52 3095.6,-1714.52"/>
<text xml:space="preserve" text-anchor="start" x="3121.83" y="-1722.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3176.56" y="-1722.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/print</text>
<text xml:space="preserve" text-anchor="start" x="3315.26" y="-1721.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Print article label</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1691.52 3094.6,-1713.52 3379.4,-1713.52 3379.4,-1691.52 3094.6,-1691.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1691.52 3094.6,-1713.52 3379.4,-1713.52 3379.4,-1691.52 3094.6,-1691.52"/>
<polygon fill="#3b2c12" stroke="none" points="3095.6,-1692.52 3095.6,-1712.52 3151.25,-1712.52 3151.25,-1692.52 3095.6,-1692.52"/>
<text xml:space="preserve" text-anchor="start" x="3114.42" y="-1700.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3155.25" y="-1700.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/articlelist</text>
<text xml:space="preserve" text-anchor="start" x="3273.02" y="-1699.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set Stückliste (bundle item…</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1669.52 3094.6,-1691.52 3379.4,-1691.52 3379.4,-1669.52 3094.6,-1669.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1669.52 3094.6,-1691.52 3379.4,-1691.52 3379.4,-1669.52 3094.6,-1669.52"/>
<polygon fill="#3b2c12" stroke="none" points="3095.6,-1670.52 3095.6,-1690.52 3158.4,-1690.52 3158.4,-1670.52 3095.6,-1670.52"/>
<text xml:space="preserve" text-anchor="start" x="3118" y="-1678.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3162.4" y="-1678.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/brand</text>
<text xml:space="preserve" text-anchor="start" x="3278.36" y="-1677.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set or clear article brand …</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1647.52 3094.6,-1669.52 3379.4,-1669.52 3379.4,-1647.52 3094.6,-1647.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1647.52 3094.6,-1669.52 3379.4,-1669.52 3379.4,-1647.52 3094.6,-1647.52"/>
<polygon fill="#3b2c12" stroke="none" points="3095.6,-1648.52 3095.6,-1668.52 3149.36,-1668.52 3149.36,-1648.52 3095.6,-1648.52"/>
<text xml:space="preserve" text-anchor="start" x="3113.48" y="-1656.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3153.36" y="-1656.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/categories</text>
<text xml:space="preserve" text-anchor="start" x="3273.46" y="-1655.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Replace article categories …</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1625.52 3094.6,-1647.52 3379.4,-1647.52 3379.4,-1625.52 3094.6,-1625.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1625.52 3094.6,-1647.52 3379.4,-1647.52 3379.4,-1625.52 3094.6,-1625.52"/>
<polygon fill="#3b2c12" stroke="none" points="3095.6,-1626.52 3095.6,-1646.52 3154.84,-1646.52 3154.84,-1626.52 3095.6,-1626.52"/>
<text xml:space="preserve" text-anchor="start" x="3116.22" y="-1634.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3158.84" y="-1634.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/children</text>
<text xml:space="preserve" text-anchor="start" x="3278.8" y="-1633.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Attach an existing article …</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1603.52 3094.6,-1625.52 3379.4,-1625.52 3379.4,-1603.52 3094.6,-1603.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1603.52 3094.6,-1625.52 3379.4,-1625.52 3379.4,-1603.52 3094.6,-1603.52"/>
<polygon fill="#3b2c12" stroke="none" points="3095.6,-1604.52 3095.6,-1624.52 3157.1,-1624.52 3157.1,-1604.52 3095.6,-1604.52"/>
<text xml:space="preserve" text-anchor="start" x="3117.35" y="-1612.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3161.1" y="-1612.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/eans</text>
<text xml:space="preserve" text-anchor="start" x="3269.47" y="-1611.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Replace article EANs by SKU</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1581.52 3094.6,-1603.52 3379.4,-1603.52 3379.4,-1581.52 3094.6,-1581.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1581.52 3094.6,-1603.52 3379.4,-1603.52 3379.4,-1581.52 3094.6,-1581.52"/>
<polygon fill="#3b2c12" stroke="none" points="3095.6,-1582.52 3095.6,-1602.52 3151.92,-1602.52 3151.92,-1582.52 3095.6,-1582.52"/>
<text xml:space="preserve" text-anchor="start" x="3114.76" y="-1590.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3155.92" y="-1590.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/images/order</text>
<text xml:space="preserve" text-anchor="start" x="3293.92" y="-1589.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder article images</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1559.52 3094.6,-1581.52 3379.4,-1581.52 3379.4,-1559.52 3094.6,-1559.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1559.52 3094.6,-1581.52 3379.4,-1581.52 3379.4,-1559.52 3094.6,-1559.52"/>
<polygon fill="#3b2c12" stroke="none" points="3095.6,-1560.52 3095.6,-1580.52 3151.85,-1580.52 3151.85,-1560.52 3095.6,-1560.52"/>
<text xml:space="preserve" text-anchor="start" x="3114.72" y="-1568.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3155.85" y="-1568.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/optionslist</text>
<text xml:space="preserve" text-anchor="start" x="3281.47" y="-1567.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set options list for an art…</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1537.52 3094.6,-1559.52 3379.4,-1559.52 3379.4,-1537.52 3094.6,-1537.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1537.52 3094.6,-1559.52 3379.4,-1559.52 3379.4,-1537.52 3094.6,-1537.52"/>
<polygon fill="#3b2c12" stroke="none" points="3095.6,-1538.52 3095.6,-1558.52 3152.21,-1558.52 3152.21,-1538.52 3095.6,-1538.52"/>
<text xml:space="preserve" text-anchor="start" x="3114.91" y="-1546.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3156.21" y="-1546.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/prices</text>
<text xml:space="preserve" text-anchor="start" x="3261.47" y="-1545.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Replace POS prices by SKU (…</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1515.52 3094.6,-1537.52 3379.4,-1537.52 3379.4,-1515.52 3094.6,-1515.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1515.52 3094.6,-1537.52 3379.4,-1537.52 3379.4,-1515.52 3094.6,-1515.52"/>
<polygon fill="#3b2c12" stroke="none" points="3095.6,-1516.52 3095.6,-1536.52 3149.28,-1536.52 3149.28,-1516.52 3095.6,-1516.52"/>
<text xml:space="preserve" text-anchor="start" x="3113.44" y="-1524.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3153.28" y="-1524.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/track_stock</text>
<text xml:space="preserve" text-anchor="start" x="3278.81" y="-1523.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set article track_stock fla…</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1493.52 3094.6,-1515.52 3379.4,-1515.52 3379.4,-1493.52 3094.6,-1493.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1493.52 3094.6,-1515.52 3379.4,-1515.52 3379.4,-1493.52 3094.6,-1493.52"/>
<polygon fill="#3b2c12" stroke="none" points="3095.6,-1494.52 3095.6,-1514.52 3159.03,-1514.52 3159.03,-1494.52 3095.6,-1494.52"/>
<text xml:space="preserve" text-anchor="start" x="3118.32" y="-1502.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3163.03" y="-1502.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/weight</text>
<text xml:space="preserve" text-anchor="start" x="3284.14" y="-1501.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set article weight by SKU</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1471.52 3094.6,-1493.52 3379.4,-1493.52 3379.4,-1471.52 3094.6,-1471.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1471.52 3094.6,-1493.52 3379.4,-1493.52 3379.4,-1471.52 3094.6,-1471.52"/>
<polygon fill="#301c44" stroke="none" points="3095.6,-1472.52 3095.6,-1492.52 3174.37,-1492.52 3174.37,-1472.52 3095.6,-1472.52"/>
<text xml:space="preserve" text-anchor="start" x="3119.49" y="-1480.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="3178.37" y="-1480.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}</text>
<text xml:space="preserve" text-anchor="start" x="3295.7" y="-1479.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update article by SKU</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1449.52 3094.6,-1471.52 3379.4,-1471.52 3379.4,-1449.52 3094.6,-1449.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1449.52 3094.6,-1471.52 3379.4,-1471.52 3379.4,-1449.52 3094.6,-1449.52"/>
<polygon fill="#3a181e" stroke="none" points="3095.6,-1450.52 3095.6,-1470.52 3177.59,-1470.52 3177.59,-1450.52 3095.6,-1450.52"/>
<text xml:space="preserve" text-anchor="start" x="3118.85" y="-1458.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3181.59" y="-1458.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}</text>
<text xml:space="preserve" text-anchor="start" x="3298.37" y="-1457.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete article by SKU</text>
<polygon fill="#2a3242" stroke="none" points="3094.6,-1427.52 3094.6,-1449.52 3379.4,-1449.52 3379.4,-1427.52 3094.6,-1427.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1427.52 3094.6,-1449.52 3379.4,-1449.52 3379.4,-1427.52 3094.6,-1427.52"/>
<polygon fill="#3a181e" stroke="none" points="3095.6,-1428.52 3095.6,-1448.52 3137.1,-1448.52 3137.1,-1428.52 3095.6,-1428.52"/>
<text xml:space="preserve" text-anchor="start" x="3098.6" y="-1436.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3141.1" y="-1436.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/children/{childSku}</text>
<text xml:space="preserve" text-anchor="start" x="3270.81" y="-1435.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Remove a child article from…</text>
<polygon fill="#272e3d" stroke="none" points="3094.6,-1405.52 3094.6,-1427.52 3379.4,-1427.52 3379.4,-1405.52 3094.6,-1405.52"/>
<polygon fill="none" stroke="#3f4c5f" points="3094.6,-1405.52 3094.6,-1427.52 3379.4,-1427.52 3379.4,-1405.52 3094.6,-1405.52"/>
<polygon fill="#3a181e" stroke="none" points="3095.6,-1406.52 3095.6,-1426.52 3152.14,-1426.52 3152.14,-1406.52 3095.6,-1406.52"/>
<text xml:space="preserve" text-anchor="start" x="3106.12" y="-1414.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3156.14" y="-1414.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}/image/{fullHash}</text>
<text xml:space="preserve" text-anchor="start" x="3303.7" y="-1413.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete article image</text>
</g>
<!-- Article&#45;&gt;Customergroup -->
<g id="edge31" class="edge">
<title>Article:e&#45;&gt;Customergroup:n</title>
<g id="a_edge31"><a xlink:title="Article → Customergroup (prices)">
<path fill="none" stroke="#5cd6d6" stroke-width="1.4" d="M3380.4,-1548.52C3608.65,-1548.52 3632.47,-1400.92 3856,-1354.72 3898.01,-1346.03 4201.1,-1359.65 4242,-1346.72 4602.95,-1232.62 4587.37,-983.63 4949,-871.72 4956.84,-869.29 9668.38,-833.96 9676,-830.92 9896.43,-742.76 9971.53,-683.72 10066,-465.92 10067.91,-461.51 10069.11,-458.77 10066,-455.12 10031.25,-414.28 9837.69,-464.47 9815.13,-422.98"/>
<polygon fill="#5cd6d6" stroke="#5cd6d6" stroke-width="1.4" points="9817.51,-422.4 9813.48,-416.18 9812.75,-423.56 9817.51,-422.4"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="8835.26" y="-841.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#5cd6d6"> &#160;prices &#160;</text>
</g>
<!-- Article&#45;&gt;Article -->
<g id="edge34" class="edge">
<title>Article:ne&#45;&gt;Article:n</title>
<g id="a_edge34"><a xlink:title="Article → Article (bundles &amp; variants)">
<path fill="none" stroke="#58d18a" stroke-width="1.4" d="M3379.4,-1911.52C3410.07,-1824.29 3455.4,-1824.29 3455.4,-1961.02 3455.4,-2094.27 3337.62,-2097.65 3264.24,-2016.99"/>
<polygon fill="#58d18a" stroke="#58d18a" stroke-width="1.4" points="3266.44,-2015.78 3259.99,-2012.11 3262.74,-2019 3266.44,-2015.78"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3497.42" y="-1706.32" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#58d18a"> &#160;bundles &amp; variants &#160;</text>
</g>
<!-- Article&#45;&gt;Category -->
<g id="edge26" class="edge">
<title>Article:w&#45;&gt;Category:n</title>
<g id="a_edge26"><a xlink:title="Article → Category (categoryId)">
<path fill="none" stroke="#6bdf9a" stroke-width="1.4" d="M3093.6,-1966.52C3011.84,-1966.52 2973.16,-1982.48 2930.97,-2052.52 2913.63,-2081.31 2926.83,-2331.18 2951.2,-2354.32 2967.1,-2369.41 2998.06,-2378.14 3006.46,-2364.11"/>
<polygon fill="#6bdf9a" stroke="#6bdf9a" stroke-width="1.4" points="3008.82,-2364.76 3008.1,-2357.38 3004.06,-2363.6 3008.82,-2364.76"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2956.99" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#6bdf9a"> &#160;categoryId &#160;</text>
</g>
<!-- Brand -->
<g id="node9" class="node">
<title>Brand</title>
<polygon fill="#33415c" stroke="none" points="2669.07,-2288.32 2669.07,-2323.32 2874.93,-2323.32 2874.93,-2288.32 2669.07,-2288.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2669.07,-2288.32 2669.07,-2323.32 2874.93,-2323.32 2874.93,-2288.32 2669.07,-2288.32"/>
<polygon fill="#33415c" stroke="none" points="2671.07,-2317.32 2671.07,-2321.32 2872.93,-2321.32 2872.93,-2317.32 2671.07,-2317.32"/>
<text xml:space="preserve" text-anchor="start" x="2754.67" y="-2304.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Brand</text>
<text xml:space="preserve" text-anchor="start" x="2759.24" y="-2295.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/brand</text>
<polygon fill="#2a3242" stroke="none" points="2669.07,-2266.32 2669.07,-2288.32 2874.93,-2288.32 2874.93,-2266.32 2669.07,-2266.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2669.07,-2266.32 2669.07,-2288.32 2874.93,-2288.32 2874.93,-2266.32 2669.07,-2266.32"/>
<polygon fill="#182b40" stroke="none" points="2670.07,-2267.32 2670.07,-2287.32 2744.05,-2287.32 2744.05,-2267.32 2670.07,-2267.32"/>
<text xml:space="preserve" text-anchor="start" x="2697.81" y="-2275.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2748.05" y="-2275.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="2830.79" y="-2274.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List brands</text>
<polygon fill="#272e3d" stroke="none" points="2669.07,-2244.32 2669.07,-2266.32 2874.93,-2266.32 2874.93,-2244.32 2669.07,-2244.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2669.07,-2244.32 2669.07,-2266.32 2874.93,-2266.32 2874.93,-2244.32 2669.07,-2244.32"/>
<polygon fill="#143826" stroke="none" points="2670.07,-2245.32 2670.07,-2265.32 2741.53,-2265.32 2741.53,-2245.32 2670.07,-2245.32"/>
<text xml:space="preserve" text-anchor="start" x="2693.55" y="-2253.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2745.53" y="-2253.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="2823.23" y="-2252.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create brand</text>
<polygon fill="#2a3242" stroke="none" points="2669.07,-2222.32 2669.07,-2244.32 2874.93,-2244.32 2874.93,-2222.32 2669.07,-2222.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2669.07,-2222.32 2669.07,-2244.32 2874.93,-2244.32 2874.93,-2222.32 2669.07,-2222.32"/>
<polygon fill="#143826" stroke="none" points="2670.07,-2223.32 2670.07,-2243.32 2708.07,-2243.32 2708.07,-2223.32 2670.07,-2223.32"/>
<text xml:space="preserve" text-anchor="start" x="2676.82" y="-2231.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2712.07" y="-2231.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/image</text>
<text xml:space="preserve" text-anchor="start" x="2771.2" y="-2230.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add or replace brand image</text>
<polygon fill="#272e3d" stroke="none" points="2669.07,-2200.32 2669.07,-2222.32 2874.93,-2222.32 2874.93,-2200.32 2669.07,-2200.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2669.07,-2200.32 2669.07,-2222.32 2874.93,-2222.32 2874.93,-2200.32 2669.07,-2200.32"/>
<polygon fill="#301c44" stroke="none" points="2670.07,-2201.32 2670.07,-2221.32 2733.9,-2221.32 2733.9,-2201.32 2670.07,-2201.32"/>
<text xml:space="preserve" text-anchor="start" x="2686.49" y="-2209.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="2737.9" y="-2209.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2817.01" y="-2208.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Rename brand</text>
<polygon fill="#2a3242" stroke="none" points="2669.07,-2178.32 2669.07,-2200.32 2874.93,-2200.32 2874.93,-2178.32 2669.07,-2178.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2669.07,-2178.32 2669.07,-2200.32 2874.93,-2200.32 2874.93,-2178.32 2669.07,-2178.32"/>
<polygon fill="#3a181e" stroke="none" points="2670.07,-2179.32 2670.07,-2199.32 2738.61,-2199.32 2738.61,-2179.32 2670.07,-2179.32"/>
<text xml:space="preserve" text-anchor="start" x="2686.59" y="-2187.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="2742.61" y="-2187.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2824.12" y="-2186.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete brand</text>
<polygon fill="#272e3d" stroke="none" points="2669.07,-2156.32 2669.07,-2178.32 2874.93,-2178.32 2874.93,-2156.32 2669.07,-2156.32"/>
<polygon fill="none" stroke="#3f4c5f" points="2669.07,-2156.32 2669.07,-2178.32 2874.93,-2178.32 2874.93,-2156.32 2669.07,-2156.32"/>
<polygon fill="#3a181e" stroke="none" points="2670.07,-2157.32 2670.07,-2177.32 2720.04,-2177.32 2720.04,-2157.32 2670.07,-2157.32"/>
<text xml:space="preserve" text-anchor="start" x="2677.31" y="-2165.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="2724.04" y="-2165.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/image</text>
<text xml:space="preserve" text-anchor="start" x="2800.11" y="-2164.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete brand image</text>
</g>
<!-- Article&#45;&gt;Brand -->
<g id="edge27" class="edge">
<title>Article:w&#45;&gt;Brand:n</title>
<g id="a_edge27"><a xlink:title="Article → Brand (brand)">
<path fill="none" stroke="#5aa7ff" stroke-width="1.4" d="M3093.6,-1680.52C2918.03,-1680.52 3118.78,-1937.81 2996,-2063.32 2970.51,-2089.37 2941.07,-2057.95 2917,-2085.32 2847.02,-2164.9 2962.73,-2251.58 2882.93,-2321.32 2866.76,-2335.45 2794.59,-2344.42 2776.25,-2330.21"/>
<polygon fill="#5aa7ff" stroke="#5aa7ff" stroke-width="1.4" points="2778.48,-2329.19 2773,-2324.18 2774.16,-2331.51 2778.48,-2329.19"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3017.58" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#5aa7ff"> &#160;brand &#160;</text>
</g>
<!-- Unit -->
<g id="node10" class="node">
<title>Unit</title>
<polygon fill="#33415c" stroke="none" points="3297.74,-2255.32 3297.74,-2290.32 3398.26,-2290.32 3398.26,-2255.32 3297.74,-2255.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3297.74,-2255.32 3297.74,-2290.32 3398.26,-2290.32 3398.26,-2255.32 3297.74,-2255.32"/>
<polygon fill="#33415c" stroke="none" points="3299.74,-2284.32 3299.74,-2288.32 3396.26,-2288.32 3396.26,-2284.32 3299.74,-2284.32"/>
<text xml:space="preserve" text-anchor="start" x="3336.34" y="-2271.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Unit</text>
<text xml:space="preserve" text-anchor="start" x="3339.49" y="-2262.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/unit</text>
<polygon fill="#2a3242" stroke="none" points="3297.74,-2233.32 3297.74,-2255.32 3398.26,-2255.32 3398.26,-2233.32 3297.74,-2233.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3297.74,-2233.32 3297.74,-2255.32 3398.26,-2255.32 3398.26,-2233.32 3297.74,-2233.32"/>
<polygon fill="#182b40" stroke="none" points="3298.74,-2234.32 3298.74,-2254.32 3340.13,-2254.32 3340.13,-2234.32 3298.74,-2234.32"/>
<text xml:space="preserve" text-anchor="start" x="3310.18" y="-2242.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3344.13" y="-2242.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3361.69" y="-2241.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List units</text>
<polygon fill="#272e3d" stroke="none" points="3297.74,-2211.32 3297.74,-2233.32 3398.26,-2233.32 3398.26,-2211.32 3297.74,-2211.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3297.74,-2211.32 3297.74,-2233.32 3398.26,-2233.32 3398.26,-2211.32 3297.74,-2211.32"/>
<polygon fill="#3b2c12" stroke="none" points="3298.74,-2212.32 3298.74,-2232.32 3337.76,-2232.32 3337.76,-2212.32 3298.74,-2212.32"/>
<text xml:space="preserve" text-anchor="start" x="3309.25" y="-2220.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3341.76" y="-2220.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3354.58" y="-2219.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Upsert unit</text>
<polygon fill="#2a3242" stroke="none" points="3297.74,-2189.32 3297.74,-2211.32 3398.26,-2211.32 3398.26,-2189.32 3297.74,-2189.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3297.74,-2189.32 3297.74,-2211.32 3398.26,-2211.32 3398.26,-2189.32 3297.74,-2189.32"/>
<polygon fill="#3a181e" stroke="none" points="3298.74,-2190.32 3298.74,-2210.32 3340.24,-2210.32 3340.24,-2190.32 3298.74,-2190.32"/>
<text xml:space="preserve" text-anchor="start" x="3301.74" y="-2198.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3344.24" y="-2198.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3355.02" y="-2197.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete unit</text>
</g>
<!-- Article&#45;&gt;Unit -->
<g id="edge28" class="edge">
<title>Article:w&#45;&gt;Unit:n</title>
<g id="a_edge28"><a xlink:title="Article → Unit (unitSi)">
<path fill="none" stroke="#f5c15c" stroke-width="1.4" d="M3093.6,-1482.52C2856.27,-1482.52 2984.05,-1806.5 3094.6,-2016.52 3111.67,-2048.94 3128.98,-2048.46 3162.48,-2063.32 3201.52,-2080.62 3216.83,-2068.33 3256,-2085.32 3329.6,-2117.23 3368.38,-2114.6 3406.26,-2185.32 3427.88,-2225.67 3438.35,-2255.67 3406.26,-2288.32 3390.52,-2304.33 3358.27,-2312.8 3349.98,-2297.88"/>
<polygon fill="#f5c15c" stroke="#f5c15c" stroke-width="1.4" points="3352.44,-2297.65 3348.48,-2291.38 3347.67,-2298.75 3352.44,-2297.65"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3178.74" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#f5c15c"> &#160;unitSi &#160;</text>
</g>
<!-- Property -->
<g id="node12" class="node">
<title>Property</title>
<polygon fill="#33415c" stroke="none" points="5359.82,-1186.72 5359.82,-1221.72 5674.18,-1221.72 5674.18,-1186.72 5359.82,-1186.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-1186.72 5359.82,-1221.72 5674.18,-1221.72 5674.18,-1186.72 5359.82,-1186.72"/>
<polygon fill="#33415c" stroke="none" points="5361.82,-1215.72 5361.82,-1219.72 5517,-1219.72 5517,-1215.72 5361.82,-1215.72"/>
<polygon fill="#33415c" stroke="none" points="5517,-1215.72 5517,-1219.72 5672.18,-1219.72 5672.18,-1215.72 5517,-1215.72"/>
<text xml:space="preserve" text-anchor="start" x="5492.33" y="-1202.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Property</text>
<text xml:space="preserve" text-anchor="start" x="5487.99" y="-1193.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/propertyname</text>
<polygon fill="#2a3242" stroke="none" points="5359.82,-1164.72 5359.82,-1186.72 5674.18,-1186.72 5674.18,-1164.72 5359.82,-1164.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-1164.72 5359.82,-1186.72 5674.18,-1186.72 5674.18,-1164.72 5359.82,-1164.72"/>
<polygon fill="#182b40" stroke="none" points="5360.82,-1165.72 5360.82,-1185.72 5460.59,-1185.72 5460.59,-1165.72 5360.82,-1165.72"/>
<text xml:space="preserve" text-anchor="start" x="5401.46" y="-1174.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5464.59" y="-1173.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="5598.93" y="-1172.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List property names</text>
<polygon fill="#272e3d" stroke="none" points="5359.82,-1142.72 5359.82,-1164.72 5674.18,-1164.72 5674.18,-1142.72 5359.82,-1142.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-1142.72 5359.82,-1164.72 5674.18,-1164.72 5674.18,-1142.72 5359.82,-1142.72"/>
<polygon fill="#143826" stroke="none" points="5360.82,-1143.72 5360.82,-1163.72 5458.07,-1163.72 5458.07,-1143.72 5360.82,-1143.72"/>
<text xml:space="preserve" text-anchor="start" x="5397.19" y="-1152.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5462.07" y="-1151.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="5591.37" y="-1150.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create property name</text>
<polygon fill="#2a3242" stroke="none" points="5359.82,-1120.72 5359.82,-1142.72 5674.18,-1142.72 5674.18,-1120.72 5359.82,-1120.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-1120.72 5359.82,-1142.72 5674.18,-1142.72 5674.18,-1120.72 5359.82,-1120.72"/>
<polygon fill="#182b40" stroke="none" points="5360.82,-1121.72 5360.82,-1141.72 5425.88,-1141.72 5425.88,-1121.72 5360.82,-1121.72"/>
<text xml:space="preserve" text-anchor="start" x="5384.1" y="-1130.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5429.88" y="-1129.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/article/{sku}/property</text>
<text xml:space="preserve" text-anchor="start" x="5595.37" y="-1128.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List article properties</text>
<polygon fill="#272e3d" stroke="none" points="5359.82,-1098.72 5359.82,-1120.72 5674.18,-1120.72 5674.18,-1098.72 5359.82,-1098.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-1098.72 5359.82,-1120.72 5674.18,-1120.72 5674.18,-1098.72 5359.82,-1098.72"/>
<polygon fill="#182b40" stroke="none" points="5360.82,-1099.72 5360.82,-1119.72 5421.47,-1119.72 5421.47,-1099.72 5360.82,-1099.72"/>
<text xml:space="preserve" text-anchor="start" x="5381.89" y="-1108.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5425.47" y="-1107.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/category/{id}/property</text>
<text xml:space="preserve" text-anchor="start" x="5586.03" y="-1106.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List category properties</text>
<polygon fill="#2a3242" stroke="none" points="5359.82,-1076.72 5359.82,-1098.72 5674.18,-1098.72 5674.18,-1076.72 5359.82,-1076.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-1076.72 5359.82,-1098.72 5674.18,-1098.72 5674.18,-1076.72 5359.82,-1076.72"/>
<polygon fill="#3b2c12" stroke="none" points="5360.82,-1077.72 5360.82,-1097.72 5420.54,-1097.72 5420.54,-1077.72 5360.82,-1077.72"/>
<text xml:space="preserve" text-anchor="start" x="5381.68" y="-1086.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="5424.54" y="-1085.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/article/{sku}/property</text>
<text xml:space="preserve" text-anchor="start" x="5579.37" y="-1084.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Bulk set article properties</text>
<polygon fill="#272e3d" stroke="none" points="5359.82,-1054.72 5359.82,-1076.72 5674.18,-1076.72 5674.18,-1054.72 5359.82,-1054.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-1054.72 5359.82,-1076.72 5674.18,-1076.72 5674.18,-1054.72 5359.82,-1054.72"/>
<polygon fill="#3b2c12" stroke="none" points="5360.82,-1055.72 5360.82,-1075.72 5416.14,-1075.72 5416.14,-1055.72 5360.82,-1055.72"/>
<text xml:space="preserve" text-anchor="start" x="5379.48" y="-1064.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="5420.14" y="-1063.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/category/{id}/property</text>
<text xml:space="preserve" text-anchor="start" x="5570.02" y="-1062.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Bulk set category properties</text>
<polygon fill="#2a3242" stroke="none" points="5359.82,-1032.72 5359.82,-1054.72 5674.18,-1054.72 5674.18,-1032.72 5359.82,-1032.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-1032.72 5359.82,-1054.72 5674.18,-1054.72 5674.18,-1032.72 5359.82,-1032.72"/>
<polygon fill="#3b2c12" stroke="none" points="5360.82,-1033.72 5360.82,-1053.72 5446.59,-1053.72 5446.59,-1033.72 5360.82,-1033.72"/>
<text xml:space="preserve" text-anchor="start" x="5394.7" y="-1042.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="5450.59" y="-1041.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="5582.48" y="-1040.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder property names</text>
<polygon fill="#272e3d" stroke="none" points="5359.82,-1010.72 5359.82,-1032.72 5674.18,-1032.72 5674.18,-1010.72 5359.82,-1010.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-1010.72 5359.82,-1032.72 5674.18,-1032.72 5674.18,-1010.72 5359.82,-1010.72"/>
<polygon fill="#301c44" stroke="none" points="5360.82,-1011.72 5360.82,-1031.72 5451.92,-1031.72 5451.92,-1011.72 5360.82,-1011.72"/>
<text xml:space="preserve" text-anchor="start" x="5390.87" y="-1020.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="5455.92" y="-1019.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="5589.58" y="-1018.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update property name</text>
<polygon fill="#2a3242" stroke="none" points="5359.82,-988.72 5359.82,-1010.72 5674.18,-1010.72 5674.18,-988.72 5359.82,-988.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-988.72 5359.82,-1010.72 5674.18,-1010.72 5674.18,-988.72 5359.82,-988.72"/>
<polygon fill="#3a181e" stroke="none" points="5360.82,-989.72 5360.82,-1009.72 5455.15,-1009.72 5455.15,-989.72 5360.82,-989.72"/>
<text xml:space="preserve" text-anchor="start" x="5390.23" y="-998.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="5459.15" y="-997.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="5592.25" y="-996.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete property name</text>
<polygon fill="#272e3d" stroke="none" points="5359.82,-966.72 5359.82,-988.72 5674.18,-988.72 5674.18,-966.72 5359.82,-966.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-966.72 5359.82,-988.72 5674.18,-988.72 5674.18,-966.72 5359.82,-966.72"/>
<polygon fill="#3a181e" stroke="none" points="5360.82,-967.72 5360.82,-987.72 5406.73,-987.72 5406.73,-967.72 5360.82,-967.72"/>
<text xml:space="preserve" text-anchor="start" x="5366.02" y="-976.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="5410.73" y="-975.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/article/{sku}/property/{propertyId}</text>
<text xml:space="preserve" text-anchor="start" x="5590.93" y="-974.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete article property</text>
<polygon fill="#2a3242" stroke="none" points="5359.82,-944.72 5359.82,-966.72 5674.18,-966.72 5674.18,-944.72 5359.82,-944.72"/>
<polygon fill="none" stroke="#3f4c5f" points="5359.82,-944.72 5359.82,-966.72 5674.18,-966.72 5674.18,-944.72 5359.82,-944.72"/>
<polygon fill="#3a181e" stroke="none" points="5360.82,-945.72 5360.82,-965.72 5402.32,-965.72 5402.32,-945.72 5360.82,-945.72"/>
<text xml:space="preserve" text-anchor="start" x="5363.82" y="-954.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="5406.32" y="-953.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/category/{id}/property/{propertyId}</text>
<text xml:space="preserve" text-anchor="start" x="5581.58" y="-952.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete category property</text>
</g>
<!-- Article&#45;&gt;Property -->
<g id="edge32" class="edge">
<title>Article:e&#45;&gt;Property:n</title>
<g id="a_edge32"><a xlink:title="Article → Property (properties)">
<path fill="none" stroke="#ff7fc2" stroke-width="1.4" d="M3388.21,-1709.02C3664.12,-1709.02 3634.92,-1437.97 3897.98,-1354.72 3935.58,-1342.81 5279.48,-1355.19 5318,-1346.72 5446.97,-1318.35 5588.1,-1354.12 5594.37,-1229.56"/>
<polygon fill="#ff7fc2" stroke="#ff7fc2" stroke-width="1.4" points="5596.82,-1229.89 5594.54,-1222.84 5591.92,-1229.77 5596.82,-1229.89"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3922.99" y="-1357.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff7fc2"> &#160;properties &#160;</text>
</g>
<!-- Attribute -->
<g id="node13" class="node">
<title>Attribute</title>
<polygon fill="#33415c" stroke="none" points="4988.29,-1241.72 4988.29,-1276.72 5275.71,-1276.72 5275.71,-1241.72 4988.29,-1241.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1241.72 4988.29,-1276.72 5275.71,-1276.72 5275.71,-1241.72 4988.29,-1241.72"/>
<polygon fill="#33415c" stroke="none" points="4990.29,-1270.72 4990.29,-1274.72 5132,-1274.72 5132,-1270.72 4990.29,-1270.72"/>
<polygon fill="#33415c" stroke="none" points="5132,-1270.72 5132,-1274.72 5273.71,-1274.72 5273.71,-1270.72 5132,-1270.72"/>
<text xml:space="preserve" text-anchor="start" x="5107" y="-1257.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Attribute</text>
<text xml:space="preserve" text-anchor="start" x="5103.23" y="-1248.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/attributename</text>
<polygon fill="#2a3242" stroke="none" points="4988.29,-1219.72 4988.29,-1241.72 5275.71,-1241.72 5275.71,-1219.72 4988.29,-1219.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1219.72 4988.29,-1241.72 5275.71,-1241.72 5275.71,-1219.72 4988.29,-1219.72"/>
<polygon fill="#182b40" stroke="none" points="4989.29,-1220.72 4989.29,-1240.72 5080.23,-1240.72 5080.23,-1220.72 4989.29,-1220.72"/>
<text xml:space="preserve" text-anchor="start" x="5025.51" y="-1229.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5084.23" y="-1228.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="5200.9" y="-1227.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List attribute names</text>
<polygon fill="#272e3d" stroke="none" points="4988.29,-1197.72 4988.29,-1219.72 5275.71,-1219.72 5275.71,-1197.72 4988.29,-1197.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1197.72 4988.29,-1219.72 5275.71,-1219.72 5275.71,-1197.72 4988.29,-1197.72"/>
<polygon fill="#143826" stroke="none" points="4989.29,-1198.72 4989.29,-1218.72 5077.71,-1218.72 5077.71,-1198.72 4989.29,-1198.72"/>
<text xml:space="preserve" text-anchor="start" x="5021.25" y="-1207.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5081.71" y="-1206.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="5193.34" y="-1205.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create attribute name</text>
<polygon fill="#2a3242" stroke="none" points="4988.29,-1175.72 4988.29,-1197.72 5275.71,-1197.72 5275.71,-1175.72 4988.29,-1175.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1175.72 4988.29,-1197.72 5275.71,-1197.72 5275.71,-1175.72 4988.29,-1175.72"/>
<polygon fill="#182b40" stroke="none" points="4989.29,-1176.72 4989.29,-1196.72 5044.63,-1196.72 5044.63,-1176.72 4989.29,-1176.72"/>
<text xml:space="preserve" text-anchor="start" x="5007.71" y="-1185.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5048.63" y="-1184.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{attributeId}/value</text>
<text xml:space="preserve" text-anchor="start" x="5179.1" y="-1183.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List values for an attribute</text>
<polygon fill="#272e3d" stroke="none" points="4988.29,-1153.72 4988.29,-1175.72 5275.71,-1175.72 5275.71,-1153.72 4988.29,-1153.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1153.72 4988.29,-1175.72 5275.71,-1175.72 5275.71,-1153.72 4988.29,-1153.72"/>
<polygon fill="#182b40" stroke="none" points="4989.29,-1154.72 4989.29,-1174.72 5031.4,-1174.72 5031.4,-1154.72 4989.29,-1154.72"/>
<text xml:space="preserve" text-anchor="start" x="5001.09" y="-1163.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5035.4" y="-1162.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/article/{sku}/attributevalue</text>
<text xml:space="preserve" text-anchor="start" x="5180" y="-1161.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List article attribute valu…</text>
<polygon fill="#2a3242" stroke="none" points="4988.29,-1131.72 4988.29,-1153.72 5275.71,-1153.72 5275.71,-1131.72 4988.29,-1131.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1131.72 4988.29,-1153.72 5275.71,-1153.72 5275.71,-1131.72 4988.29,-1131.72"/>
<polygon fill="#182b40" stroke="none" points="4989.29,-1132.72 4989.29,-1152.72 5028.48,-1152.72 5028.48,-1132.72 4989.29,-1132.72"/>
<text xml:space="preserve" text-anchor="start" x="4999.63" y="-1141.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5032.48" y="-1140.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/category/{id}/attributevalue</text>
<text xml:space="preserve" text-anchor="start" x="5175.11" y="-1139.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List category attribute val…</text>
<polygon fill="#272e3d" stroke="none" points="4988.29,-1109.72 4988.29,-1131.72 5275.71,-1131.72 5275.71,-1109.72 4988.29,-1109.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1109.72 4988.29,-1131.72 5275.71,-1131.72 5275.71,-1109.72 4988.29,-1109.72"/>
<polygon fill="#143826" stroke="none" points="4989.29,-1110.72 4989.29,-1130.72 5042.11,-1130.72 5042.11,-1110.72 4989.29,-1110.72"/>
<text xml:space="preserve" text-anchor="start" x="5003.45" y="-1119.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5046.11" y="-1118.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{attributeId}/value</text>
<text xml:space="preserve" text-anchor="start" x="5171.55" y="-1117.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create value for an attribu…</text>
<polygon fill="#2a3242" stroke="none" points="4988.29,-1087.72 4988.29,-1109.72 5275.71,-1109.72 5275.71,-1087.72 4988.29,-1087.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1087.72 4988.29,-1109.72 5275.71,-1109.72 5275.71,-1087.72 4988.29,-1087.72"/>
<polygon fill="#143826" stroke="none" points="4989.29,-1088.72 4989.29,-1108.72 5031.1,-1108.72 5031.1,-1088.72 4989.29,-1088.72"/>
<text xml:space="preserve" text-anchor="start" x="4997.94" y="-1097.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5035.1" y="-1096.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/attributevalue/{id}/image</text>
<text xml:space="preserve" text-anchor="start" x="5170.21" y="-1095.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add or replace attribute va…</text>
<polygon fill="#272e3d" stroke="none" points="4988.29,-1065.72 4988.29,-1087.72 5275.71,-1087.72 5275.71,-1065.72 4988.29,-1065.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1065.72 4988.29,-1087.72 5275.71,-1087.72 5275.71,-1065.72 4988.29,-1065.72"/>
<polygon fill="#3b2c12" stroke="none" points="4989.29,-1066.72 4989.29,-1086.72 5032.07,-1086.72 5032.07,-1066.72 4989.29,-1066.72"/>
<text xml:space="preserve" text-anchor="start" x="5001.68" y="-1075.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="5036.07" y="-1074.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{attributeId}/value/order</text>
<text xml:space="preserve" text-anchor="start" x="5169.77" y="-1073.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder values of an attrib…</text>
<polygon fill="#2a3242" stroke="none" points="4988.29,-1043.72 4988.29,-1065.72 5275.71,-1065.72 5275.71,-1043.72 4988.29,-1043.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1043.72 4988.29,-1065.72 5275.71,-1065.72 5275.71,-1043.72 4988.29,-1043.72"/>
<polygon fill="#3b2c12" stroke="none" points="4989.29,-1044.72 4989.29,-1064.72 5030.96,-1064.72 5030.96,-1044.72 4989.29,-1044.72"/>
<text xml:space="preserve" text-anchor="start" x="5001.12" y="-1053.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="5034.96" y="-1052.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/article/{sku}/attributevalue</text>
<text xml:space="preserve" text-anchor="start" x="5178.67" y="-1051.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Bulk set article attribute …</text>
<polygon fill="#272e3d" stroke="none" points="4988.29,-1021.72 4988.29,-1043.72 5275.71,-1043.72 5275.71,-1021.72 4988.29,-1021.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-1021.72 4988.29,-1043.72 5275.71,-1043.72 5275.71,-1021.72 4988.29,-1021.72"/>
<polygon fill="#3b2c12" stroke="none" points="4989.29,-1022.72 4989.29,-1042.72 5027.29,-1042.72 5027.29,-1022.72 4989.29,-1022.72"/>
<text xml:space="preserve" text-anchor="start" x="4999.29" y="-1031.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="5031.29" y="-1030.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/category/{id}/attributevalue</text>
<text xml:space="preserve" text-anchor="start" x="5171.55" y="-1029.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Bulk set category attribute…</text>
<polygon fill="#2a3242" stroke="none" points="4988.29,-999.72 4988.29,-1021.72 5275.71,-1021.72 5275.71,-999.72 4988.29,-999.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-999.72 4988.29,-1021.72 5275.71,-1021.72 5275.71,-999.72 4988.29,-999.72"/>
<polygon fill="#3b2c12" stroke="none" points="4989.29,-1000.72 4989.29,-1020.72 5066.23,-1020.72 5066.23,-1000.72 4989.29,-1000.72"/>
<text xml:space="preserve" text-anchor="start" x="5018.76" y="-1009.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="5070.23" y="-1008.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="5184.44" y="-1007.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder attribute names</text>
<polygon fill="#272e3d" stroke="none" points="4988.29,-977.72 4988.29,-999.72 5275.71,-999.72 5275.71,-977.72 4988.29,-977.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-977.72 4988.29,-999.72 5275.71,-999.72 5275.71,-977.72 4988.29,-977.72"/>
<polygon fill="#301c44" stroke="none" points="4989.29,-978.72 4989.29,-998.72 5071.56,-998.72 5071.56,-978.72 4989.29,-978.72"/>
<text xml:space="preserve" text-anchor="start" x="5014.93" y="-987.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="5075.56" y="-986.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="5191.55" y="-985.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update attribute name</text>
<polygon fill="#2a3242" stroke="none" points="4988.29,-955.72 4988.29,-977.72 5275.71,-977.72 5275.71,-955.72 4988.29,-955.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-955.72 4988.29,-977.72 5275.71,-977.72 5275.71,-955.72 4988.29,-955.72"/>
<polygon fill="#301c44" stroke="none" points="4989.29,-956.72 4989.29,-976.72 5049.07,-976.72 5049.07,-956.72 4989.29,-956.72"/>
<text xml:space="preserve" text-anchor="start" x="5003.68" y="-965.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="5053.07" y="-964.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/attributevalue/{id}</text>
<text xml:space="preserve" text-anchor="start" x="5192.44" y="-963.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update attribute value</text>
<polygon fill="#272e3d" stroke="none" points="4988.29,-933.72 4988.29,-955.72 5275.71,-955.72 5275.71,-933.72 4988.29,-933.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-933.72 4988.29,-955.72 5275.71,-955.72 5275.71,-933.72 4988.29,-933.72"/>
<polygon fill="#3a181e" stroke="none" points="4989.29,-934.72 4989.29,-954.72 5074.79,-954.72 5074.79,-934.72 4989.29,-934.72"/>
<text xml:space="preserve" text-anchor="start" x="5014.29" y="-943.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="5078.79" y="-942.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="5194.22" y="-941.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete attribute name</text>
<polygon fill="#2a3242" stroke="none" points="4988.29,-911.72 4988.29,-933.72 5275.71,-933.72 5275.71,-911.72 4988.29,-911.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-911.72 4988.29,-933.72 5275.71,-933.72 5275.71,-911.72 4988.29,-911.72"/>
<polygon fill="#3a181e" stroke="none" points="4989.29,-912.72 4989.29,-932.72 5052.3,-932.72 5052.3,-912.72 4989.29,-912.72"/>
<text xml:space="preserve" text-anchor="start" x="5003.04" y="-921.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="5056.3" y="-920.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/attributevalue/{id}</text>
<text xml:space="preserve" text-anchor="start" x="5195.11" y="-919.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete attribute value</text>
<polygon fill="#272e3d" stroke="none" points="4988.29,-889.72 4988.29,-911.72 5275.71,-911.72 5275.71,-889.72 4988.29,-889.72"/>
<polygon fill="none" stroke="#3f4c5f" points="4988.29,-889.72 4988.29,-911.72 5275.71,-911.72 5275.71,-889.72 4988.29,-889.72"/>
<polygon fill="#3a181e" stroke="none" points="4989.29,-890.72 4989.29,-910.72 5033.74,-910.72 5033.74,-890.72 4989.29,-890.72"/>
<text xml:space="preserve" text-anchor="start" x="4993.76" y="-899.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="5037.74" y="-898.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/attributevalue/{id}/image</text>
<text xml:space="preserve" text-anchor="start" x="5171.1" y="-897.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete attribute value image</text>
</g>
<!-- Article&#45;&gt;Attribute -->
<g id="edge33" class="edge">
<title>Article:e&#45;&gt;Attribute:n</title>
<g id="a_edge33"><a xlink:title="Article → Attribute (attributes)">
<path fill="none" stroke="#8f95ff" stroke-width="1.4" d="M3388.21,-1709.02C3799.76,-1709.02 5182.4,-1690.58 5202.63,-1284.76"/>
<polygon fill="#8f95ff" stroke="#8f95ff" stroke-width="1.4" points="5205.08,-1284.89 5202.8,-1277.84 5200.18,-1284.77 5205.08,-1284.89"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="5203.75" y="-1357.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8f95ff"> &#160;attributes &#160;</text>
</g>
<!-- ArticleSupplier -->
<g id="node15" class="node">
<title>ArticleSupplier</title>
<polygon fill="#33415c" stroke="none" points="30.5,-2648.12 30.5,-2683.12 221.5,-2683.12 221.5,-2648.12 30.5,-2648.12"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2648.12 30.5,-2683.12 221.5,-2683.12 221.5,-2648.12 30.5,-2648.12"/>
<polygon fill="#33415c" stroke="none" points="32.5,-2677.12 32.5,-2681.12 219.5,-2681.12 219.5,-2677.12 32.5,-2677.12"/>
<text xml:space="preserve" text-anchor="start" x="83.32" y="-2664.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">ArticleSupplier</text>
<text xml:space="preserve" text-anchor="start" x="84.48" y="-2655.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/article/{sku}/supplier</text>
<polygon fill="#2a3242" stroke="none" points="30.5,-2626.12 30.5,-2648.12 221.5,-2648.12 221.5,-2626.12 30.5,-2626.12"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2626.12 30.5,-2648.12 221.5,-2648.12 221.5,-2626.12 30.5,-2626.12"/>
<polygon fill="#182b40" stroke="none" points="31.5,-2627.12 31.5,-2647.12 90.16,-2647.12 90.16,-2627.12 31.5,-2627.12"/>
<text xml:space="preserve" text-anchor="start" x="51.58" y="-2635.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="94.16" y="-2635.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="146.25" y="-2633.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List article suppliers</text>
<polygon fill="#272e3d" stroke="none" points="30.5,-2604.12 30.5,-2626.12 221.5,-2626.12 221.5,-2604.12 30.5,-2604.12"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2604.12 30.5,-2626.12 221.5,-2626.12 221.5,-2604.12 30.5,-2604.12"/>
<polygon fill="#143826" stroke="none" points="31.5,-2605.12 31.5,-2625.12 84.67,-2625.12 84.67,-2605.12 31.5,-2605.12"/>
<text xml:space="preserve" text-anchor="start" x="45.83" y="-2613.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="88.67" y="-2613.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="129.79" y="-2611.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Assign supplier to article</text>
<polygon fill="#2a3242" stroke="none" points="30.5,-2582.12 30.5,-2604.12 221.5,-2604.12 221.5,-2582.12 30.5,-2582.12"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2582.12 30.5,-2604.12 221.5,-2604.12 221.5,-2582.12 30.5,-2582.12"/>
<polygon fill="#3b2c12" stroke="none" points="31.5,-2583.12 31.5,-2603.12 76.15,-2603.12 76.15,-2583.12 31.5,-2583.12"/>
<text xml:space="preserve" text-anchor="start" x="44.83" y="-2591.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="80.15" y="-2591.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="129.8" y="-2589.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder article suppliers</text>
<polygon fill="#272e3d" stroke="none" points="30.5,-2560.12 30.5,-2582.12 221.5,-2582.12 221.5,-2560.12 30.5,-2560.12"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2560.12 30.5,-2582.12 221.5,-2582.12 221.5,-2560.12 30.5,-2560.12"/>
<polygon fill="#301c44" stroke="none" points="31.5,-2561.12 31.5,-2581.12 74.37,-2581.12 74.37,-2561.12 31.5,-2561.12"/>
<text xml:space="preserve" text-anchor="start" x="37.44" y="-2569.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="78.37" y="-2569.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="115.56" y="-2567.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update article supplier ass…</text>
<polygon fill="#2a3242" stroke="none" points="30.5,-2538.12 30.5,-2560.12 221.5,-2560.12 221.5,-2538.12 30.5,-2538.12"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2538.12 30.5,-2560.12 221.5,-2560.12 221.5,-2538.12 30.5,-2538.12"/>
<polygon fill="#3a181e" stroke="none" points="31.5,-2539.12 31.5,-2559.12 73,-2559.12 73,-2539.12 31.5,-2539.12"/>
<text xml:space="preserve" text-anchor="start" x="34.5" y="-2547.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="77" y="-2547.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="104.45" y="-2545.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Remove supplier assignment …</text>
</g>
<!-- Article&#45;&gt;ArticleSupplier -->
<g id="edge29" class="edge">
<title>Article:w&#45;&gt;ArticleSupplier:n</title>
<g id="a_edge29"><a xlink:title="Article → ArticleSupplier (suppliers)">
<path fill="none" stroke="#c79bff" stroke-width="1.4" d="M3093.6,-1944.52C2745.64,-1944.52 2661.4,-1996.72 2314,-2016.52 1579.02,-2058.39 1392.29,-1999.9 658,-2052.52 537.86,-2061.13 476.6,-2002.67 388.98,-2085.32 264.18,-2203.04 428.95,-2332.59 320,-2465.12 303.02,-2485.77 280.94,-2466.43 264,-2487.12 208.51,-2554.87 296.36,-2624.55 229.5,-2681.12 214.27,-2694 147.62,-2702.59 130.19,-2689.64"/>
<polygon fill="#c79bff" stroke="#c79bff" stroke-width="1.4" points="132.57,-2688.89 127.03,-2683.97 128.29,-2691.28 132.57,-2688.89"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="411.99" y="-2237.12" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#c79bff"> &#160;suppliers &#160;</text>
</g>
<!-- Image -->
<g id="node27" class="node">
<title>Image</title>
<polygon fill="#33415c" stroke="none" points="8766.19,-648.92 8766.19,-683.92 9029.81,-683.92 9029.81,-648.92 8766.19,-648.92"/>
<polygon fill="none" stroke="#3f4c5f" points="8766.19,-648.92 8766.19,-683.92 9029.81,-683.92 9029.81,-648.92 8766.19,-648.92"/>
<polygon fill="#33415c" stroke="none" points="8768.19,-677.92 8768.19,-681.92 8833.09,-681.92 8833.09,-677.92 8768.19,-677.92"/>
<polygon fill="#33415c" stroke="none" points="8833.09,-677.92 8833.09,-681.92 8898,-681.92 8898,-677.92 8833.09,-677.92"/>
<polygon fill="#33415c" stroke="none" points="8898,-677.92 8898,-681.92 8962.91,-681.92 8962.91,-677.92 8898,-677.92"/>
<polygon fill="#33415c" stroke="none" points="8962.91,-677.92 8962.91,-681.92 9027.81,-681.92 9027.81,-677.92 8962.91,-677.92"/>
<text xml:space="preserve" text-anchor="start" x="8880.66" y="-665.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Image</text>
<text xml:space="preserve" text-anchor="start" x="8884.49" y="-655.82" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/image</text>
<polygon fill="#2a3242" stroke="none" points="8766.19,-626.92 8766.19,-648.92 9029.81,-648.92 9029.81,-626.92 8766.19,-626.92"/>
<polygon fill="none" stroke="#3f4c5f" points="8766.19,-626.92 8766.19,-648.92 9029.81,-648.92 9029.81,-626.92 8766.19,-626.92"/>
<polygon fill="#182b40" stroke="none" points="8767.19,-627.92 8767.19,-647.92 8835.35,-647.92 8835.35,-627.92 8767.19,-627.92"/>
<text xml:space="preserve" text-anchor="start" x="8792.02" y="-636.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="8839.35" y="-635.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{fullHash}</text>
<text xml:space="preserve" text-anchor="start" x="8957.67" y="-634.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Full image by hash</text>
<polygon fill="#272e3d" stroke="none" points="8766.19,-604.92 8766.19,-626.92 9029.81,-626.92 9029.81,-604.92 8766.19,-604.92"/>
<polygon fill="none" stroke="#3f4c5f" points="8766.19,-604.92 8766.19,-626.92 9029.81,-626.92 9029.81,-604.92 8766.19,-604.92"/>
<polygon fill="#182b40" stroke="none" points="8767.19,-605.92 8767.19,-625.92 8805.19,-625.92 8805.19,-605.92 8767.19,-605.92"/>
<text xml:space="preserve" text-anchor="start" x="8776.94" y="-614.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="8809.19" y="-613.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/smallthumb/{fullHash}</text>
<text xml:space="preserve" text-anchor="start" x="8926.1" y="-612.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Small thumb image by hash</text>
<polygon fill="#2a3242" stroke="none" points="8766.19,-582.92 8766.19,-604.92 9029.81,-604.92 9029.81,-582.92 8766.19,-582.92"/>
<polygon fill="none" stroke="#3f4c5f" points="8766.19,-582.92 8766.19,-604.92 9029.81,-604.92 9029.81,-582.92 8766.19,-582.92"/>
<polygon fill="#182b40" stroke="none" points="8767.19,-583.92 8767.19,-603.92 8820.23,-603.92 8820.23,-583.92 8767.19,-583.92"/>
<text xml:space="preserve" text-anchor="start" x="8784.46" y="-592.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="8824.23" y="-591.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/thumb/{fullHash}</text>
<text xml:space="preserve" text-anchor="start" x="8945.66" y="-590.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Thumb image by hash</text>
</g>
<!-- Article&#45;&gt;Image -->
<g id="edge30" class="edge">
<title>Article:e&#45;&gt;Image:n</title>
<g id="a_edge30"><a xlink:title="Article → Image (photos)">
<path fill="none" stroke="#ff9f5a" stroke-width="1.4" d="M3380.4,-1768.52C3769.14,-1768.52 3774.24,-1450.5 4151,-1354.72 4193.05,-1344.03 5673.36,-1364.37 5713,-1346.72 5973.68,-1230.63 5884.42,-988.06 6144.98,-871.72 6184.27,-854.17 9212.68,-880.25 9243,-849.72 9246.38,-846.31 9246.31,-842.39 9243,-838.92 9229.79,-825.08 9088.4,-838.87 9071,-830.92 8991.32,-794.49 8934.45,-774.99 8930.65,-691.97"/>
<polygon fill="#ff9f5a" stroke="#ff9f5a" stroke-width="1.4" points="8933.11,-691.98 8930.5,-685.04 8928.21,-692.09 8933.11,-691.98"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6163.49" y="-1080.52" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff9f5a"> &#160;photos &#160;</text>
</g>
<!-- Category&#45;&gt;Article -->
<g id="edge36" class="edge">
<title>Category:e&#45;&gt;Article:n</title>
<g id="a_edge36"><a xlink:title="Category → Article (articles)">
<path fill="none" stroke="#4fc4e8" stroke-width="1.4" d="M3153.8,-2288.32C3228.91,-2288.32 3200.6,-2177.26 3152.8,-2119.32 3112.05,-2069.92 2829.82,-2100.26 2872.49,-2052.52 2924.69,-1994.12 3213.16,-2085.36 3235.61,-2020.25"/>
<polygon fill="#4fc4e8" stroke="#4fc4e8" stroke-width="1.4" points="3237.99,-2020.91 3236.67,-2013.61 3233.15,-2020.14 3237.99,-2020.91"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2891.75" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#4fc4e8"> &#160;articles &#160;</text>
</g>
<!-- Category&#45;&gt;Category -->
<g id="edge35" class="edge">
<title>Category:ne&#45;&gt;Category:n</title>
<g id="a_edge35"><a xlink:title="Category → Category (parentId)">
<path fill="none" stroke="#ff8f66" stroke-width="1.4" d="M3152.8,-2299.32C3183.47,-2253.84 3228.8,-2253.84 3228.8,-2326.82 3228.8,-2396.94 3049.48,-2399.68 2984.36,-2359.44"/>
<polygon fill="#ff8f66" stroke="#ff8f66" stroke-width="1.4" points="2985.88,-2357.52 2978.74,-2355.53 2983.09,-2361.54 2985.88,-2357.52"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3250.31" y="-2237.12" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff8f66"> &#160;parentId &#160;</text>
</g>
<!-- Category&#45;&gt;Property -->
<g id="edge38" class="edge">
<title>Category:e&#45;&gt;Property:n</title>
<g id="a_edge38"><a xlink:title="Category → Property (properties)">
<path fill="none" stroke="#ff6f6f" stroke-width="1.4" d="M3161.59,-2239.82C3215.14,-2239.82 3195.91,-2159.57 3160.59,-2119.32 3088.49,-2037.15 3025.9,-2094.76 2917,-2085.32 2821.38,-2077.03 2116.34,-2091.14 2055.98,-2016.52 1880.16,-1799.17 1859.28,-1586.17 2055.98,-1387.52 2077.77,-1365.51 4255.06,-1366.89 4286,-1365.52 4347.02,-1362.81 4361.98,-1357.39 4423,-1354.72 4447.84,-1353.63 5295.16,-1356.55 5318,-1346.72 5386.64,-1317.17 5435.47,-1299.87 5439.18,-1229.56"/>
<polygon fill="#ff6f6f" stroke="#ff6f6f" stroke-width="1.4" points="5441.62,-1229.9 5439.35,-1222.84 5436.73,-1229.77 5441.62,-1229.9"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2080.99" y="-1706.32" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff6f6f"> &#160;properties &#160;</text>
</g>
<!-- Category&#45;&gt;Attribute -->
<g id="edge39" class="edge">
<title>Category:e&#45;&gt;Attribute:n</title>
<g id="a_edge39"><a xlink:title="Category → Attribute (attributes)">
<path fill="none" stroke="#4ecb8f" stroke-width="1.4" d="M3161.59,-2239.82C3215.14,-2239.82 3195.91,-2159.57 3160.59,-2119.32 3088.49,-2037.15 3025.89,-2094.93 2917,-2085.32 2786.75,-2073.82 2454.44,-2100.21 2329,-2063.32 2289.84,-2051.8 2270.19,-2051.98 2249.98,-2016.52 2111.55,-1773.64 2053.37,-1586.25 2249.98,-1387.52 2270.02,-1367.26 4273.56,-1367.35 4302,-1365.52 4321.91,-1364.24 4974.41,-1304.85 5053.35,-1280.05"/>
<polygon fill="#4ecb8f" stroke="#4ecb8f" stroke-width="1.4" points="5054.37,-1282.29 5059.29,-1276.75 5051.99,-1278.01 5054.37,-1282.29"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2273.49" y="-1706.32" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#4ecb8f"> &#160;attributes &#160;</text>
</g>
<!-- Category&#45;&gt;Image -->
<g id="edge37" class="edge">
<title>Category:e&#45;&gt;Image:n</title>
<g id="a_edge37"><a xlink:title="Category → Image (image)">
<path fill="none" stroke="#a98cff" stroke-width="1.4" d="M3153.8,-2222.32C3199.58,-2222.32 3182.94,-2153.78 3152.8,-2119.32 3083.09,-2039.62 3022.37,-2095.74 2917,-2085.32 2871.93,-2080.86 2541.15,-2096.19 2510,-2063.32 2245.01,-1783.61 2706.25,-1555.5 3053,-1387.52 3120.81,-1354.67 4333.85,-1370.97 4409,-1365.52 4446.32,-1362.81 4455.16,-1357.22 4492.49,-1354.72 4665.93,-1343.1 5884.13,-1365.07 6057,-1346.72 7081.11,-1237.98 7301.88,-989.43 8325,-871.72 8351.8,-868.63 9277.14,-869.01 9296,-849.72 9331.07,-813.84 9118.47,-847.17 9071,-830.92 8967.44,-795.46 8870.97,-795.43 8865.77,-691.9"/>
<polygon fill="#a98cff" stroke="#a98cff" stroke-width="1.4" points="8868.22,-691.97 8865.6,-685.04 8863.32,-692.09 8868.22,-691.97"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4509.74" y="-1357.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#a98cff"> &#160;image &#160;</text>
</g>
<!-- Brand&#45;&gt;Image -->
<g id="edge40" class="edge">
<title>Brand:e&#45;&gt;Image:n</title>
<g id="a_edge40"><a xlink:title="Brand → Image (image)">
<path fill="none" stroke="#5aa7e6" stroke-width="1.4" d="M2875.93,-2233.32C2911.93,-2233.32 2897.19,-2180.61 2874.93,-2152.32 2775.18,-2025.56 2472.96,-2204.84 2526,-2052.52 2650.01,-1696.38 2714.65,-1554.04 3053,-1387.52 3130.92,-1349.17 4539.61,-1406.83 4616,-1365.52 4848.84,-1239.59 4715.96,-997.26 4949,-871.72 5041.81,-821.72 8657.47,-891.14 8744,-830.92 8799.32,-792.41 8800.63,-756.56 8800.64,-691.82"/>
<polygon fill="#5aa7e6" stroke="#5aa7e6" stroke-width="1.4" points="8803.09,-692.04 8800.64,-685.04 8798.19,-692.04 8803.09,-692.04"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4647.73" y="-1357.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#5aa7e6"> &#160;image &#160;</text>
</g>
<!-- PublicCatalog -->
<g id="node11" class="node">
<title>PublicCatalog</title>
<polygon fill="#33415c" stroke="none" points="3482.06,-2268.32 3482.06,-2299.32 3747.94,-2299.32 3747.94,-2268.32 3482.06,-2268.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3482.06,-2268.32 3482.06,-2299.32 3747.94,-2299.32 3747.94,-2268.32 3482.06,-2268.32"/>
<text xml:space="preserve" text-anchor="start" x="3575" y="-2284.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">PublicCatalog</text>
<text xml:space="preserve" text-anchor="start" x="3601.99" y="-2275.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/public</text>
<polygon fill="#2a3242" stroke="none" points="3482.06,-2246.32 3482.06,-2268.32 3747.94,-2268.32 3747.94,-2246.32 3482.06,-2246.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3482.06,-2246.32 3482.06,-2268.32 3747.94,-2268.32 3747.94,-2246.32 3482.06,-2246.32"/>
<polygon fill="#182b40" stroke="none" points="3483.06,-2247.32 3483.06,-2267.32 3536.26,-2267.32 3536.26,-2247.32 3483.06,-2247.32"/>
<text xml:space="preserve" text-anchor="start" x="3500.41" y="-2255.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3540.26" y="-2255.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{companyId}/articles</text>
<text xml:space="preserve" text-anchor="start" x="3679.8" y="-2254.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List public articles</text>
<polygon fill="#272e3d" stroke="none" points="3482.06,-2224.32 3482.06,-2246.32 3747.94,-2246.32 3747.94,-2224.32 3482.06,-2224.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3482.06,-2224.32 3482.06,-2246.32 3747.94,-2246.32 3747.94,-2224.32 3482.06,-2224.32"/>
<polygon fill="#182b40" stroke="none" points="3483.06,-2225.32 3483.06,-2245.32 3521.06,-2245.32 3521.06,-2225.32 3483.06,-2225.32"/>
<text xml:space="preserve" text-anchor="start" x="3492.81" y="-2233.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3525.06" y="-2233.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{companyId}/articles/{sku}</text>
<text xml:space="preserve" text-anchor="start" x="3662.01" y="-2232.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get public article detail</text>
<polygon fill="#2a3242" stroke="none" points="3482.06,-2202.32 3482.06,-2224.32 3747.94,-2224.32 3747.94,-2202.32 3482.06,-2202.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3482.06,-2202.32 3482.06,-2224.32 3747.94,-2224.32 3747.94,-2202.32 3482.06,-2202.32"/>
<polygon fill="#182b40" stroke="none" points="3483.06,-2203.32 3483.06,-2223.32 3527.4,-2223.32 3527.4,-2203.32 3483.06,-2203.32"/>
<text xml:space="preserve" text-anchor="start" x="3495.98" y="-2211.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3531.4" y="-2211.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{companyId}/categories</text>
<text xml:space="preserve" text-anchor="start" x="3668.23" y="-2210.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List public categories</text>
<polygon fill="#272e3d" stroke="none" points="3482.06,-2180.32 3482.06,-2202.32 3747.94,-2202.32 3747.94,-2180.32 3482.06,-2180.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3482.06,-2180.32 3482.06,-2202.32 3747.94,-2202.32 3747.94,-2180.32 3482.06,-2180.32"/>
<polygon fill="#143826" stroke="none" points="3483.06,-2181.32 3483.06,-2201.32 3541.74,-2201.32 3541.74,-2181.32 3483.06,-2181.32"/>
<text xml:space="preserve" text-anchor="start" x="3500.15" y="-2189.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3545.74" y="-2189.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/telemetry/crash</text>
<text xml:space="preserve" text-anchor="start" x="3671.79" y="-2188.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Receipt crash dump</text>
</g>
<!-- PublicCatalog&#45;&gt;Article -->
<g id="edge59" class="edge">
<title>PublicCatalog:w&#45;&gt;Article:n</title>
<g id="a_edge59"><a xlink:title="PublicCatalog → Article (articles)">
<path fill="none" stroke="#ff8f66" stroke-width="1.4" d="M3473.2,-2239.82C3402.96,-2239.82 3491.71,-2132.85 3440,-2085.32 3383.42,-2033.31 3319.26,-2121.01 3268.49,-2063.32 3265.32,-2059.71 3267.83,-2057.27 3268.49,-2052.52 3270.65,-2037.12 3277.14,-2032.15 3279.41,-2020.4"/>
<polygon fill="#ff8f66" stroke="#ff8f66" stroke-width="1.4" points="3281.83,-2020.82 3280.01,-2013.63 3276.95,-2020.38 3281.83,-2020.82"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3287.75" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff8f66"> &#160;articles &#160;</text>
</g>
<!-- PublicCatalog&#45;&gt;Category -->
<g id="edge60" class="edge">
<title>PublicCatalog:w&#45;&gt;Category:n</title>
<g id="a_edge60"><a xlink:title="PublicCatalog → Category (category)">
<path fill="none" stroke="#4fc4e8" stroke-width="1.4" d="M3473.2,-2239.82C3391.85,-2239.82 3502.52,-2367.76 3440,-2419.8 3373.2,-2475.41 3062.5,-2447.4 3041.34,-2364.34"/>
<polygon fill="#4fc4e8" stroke="#4fc4e8" stroke-width="1.4" points="3043.77,-2364.06 3040.46,-2357.42 3038.91,-2364.67 3043.77,-2364.06"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3733" y="-2457.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#4fc4e8"> &#160;category &#160;</text>
</g>
<!-- Property&#45;&gt;Company -->
<g id="edge41" class="edge">
<title>Property:e&#45;&gt;Company:n</title>
<g id="a_edge41"><a xlink:title="Property → Company (companyId)">
<path fill="none" stroke="#ff7aa8" stroke-width="1.4" d="M5675.18,-1175.72C5812.72,-1175.72 5627.34,-959.76 5733,-871.72 5750.75,-856.92 9037.9,-850.45 9061,-849.72 9145.53,-847.04 9166.45,-841.64 9250.97,-838.92 9280.02,-837.98 10268.76,-837.76 10297,-830.92 10372.46,-812.63 10452.74,-828.38 10458.89,-757.94"/>
<polygon fill="#ff7aa8" stroke="#ff7aa8" stroke-width="1.4" points="10461.34,-758.13 10459.18,-751.03 10456.44,-757.93 10461.34,-758.13"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="9277.99" y="-841.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff7aa8"> &#160;companyId &#160;</text>
</g>
<!-- Attribute&#45;&gt;Image -->
<g id="edge42" class="edge">
<title>Attribute:e&#45;&gt;Image:n</title>
<g id="a_edge42"><a xlink:title="Attribute → Image (image)">
<path fill="none" stroke="#e0b25a" stroke-width="1.4" d="M5276.71,-1098.72C5379.25,-1098.72 5239.47,-937.65 5318,-871.72 5357.25,-838.76 8971.87,-886.06 9008,-849.72 9011.38,-846.31 9008.19,-843.71 9008,-838.92 9005.31,-772.54 8996.23,-754.11 8995.42,-691.98"/>
<polygon fill="#e0b25a" stroke="#e0b25a" stroke-width="1.4" points="8997.87,-692.02 8995.37,-685.04 8992.97,-692.05 8997.87,-692.02"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="9026.8" y="-841.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#e0b25a"> &#160;image &#160;</text>
</g>
<!-- Supplier -->
<g id="node14" class="node">
<title>Supplier</title>
<polygon fill="#33415c" stroke="none" points="32.8,-2288.32 32.8,-2323.32 245.2,-2323.32 245.2,-2288.32 32.8,-2288.32"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-2288.32 32.8,-2323.32 245.2,-2323.32 245.2,-2288.32 32.8,-2288.32"/>
<polygon fill="#33415c" stroke="none" points="34.8,-2317.32 34.8,-2321.32 139,-2321.32 139,-2317.32 34.8,-2317.32"/>
<polygon fill="#33415c" stroke="none" points="139,-2317.32 139,-2321.32 243.2,-2321.32 243.2,-2317.32 139,-2317.32"/>
<text xml:space="preserve" text-anchor="start" x="115" y="-2304.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Supplier</text>
<text xml:space="preserve" text-anchor="start" x="121.99" y="-2295.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/supplier</text>
<polygon fill="#2a3242" stroke="none" points="32.8,-2266.32 32.8,-2288.32 245.2,-2288.32 245.2,-2266.32 32.8,-2266.32"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-2266.32 32.8,-2288.32 245.2,-2288.32 245.2,-2266.32 32.8,-2266.32"/>
<polygon fill="#182b40" stroke="none" points="33.8,-2267.32 33.8,-2287.32 107.44,-2287.32 107.44,-2267.32 33.8,-2267.32"/>
<text xml:space="preserve" text-anchor="start" x="61.37" y="-2275.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="111.44" y="-2275.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="193.51" y="-2274.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List suppliers</text>
<polygon fill="#272e3d" stroke="none" points="32.8,-2244.32 32.8,-2266.32 245.2,-2266.32 245.2,-2244.32 32.8,-2244.32"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-2244.32 32.8,-2266.32 245.2,-2266.32 245.2,-2244.32 32.8,-2244.32"/>
<polygon fill="#143826" stroke="none" points="33.8,-2245.32 33.8,-2265.32 104.92,-2265.32 104.92,-2245.32 33.8,-2245.32"/>
<text xml:space="preserve" text-anchor="start" x="57.11" y="-2253.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="108.92" y="-2253.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="185.95" y="-2252.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create supplier</text>
<polygon fill="#2a3242" stroke="none" points="32.8,-2222.32 32.8,-2244.32 245.2,-2244.32 245.2,-2222.32 32.8,-2222.32"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-2222.32 32.8,-2244.32 245.2,-2244.32 245.2,-2222.32 32.8,-2222.32"/>
<polygon fill="#182b40" stroke="none" points="33.8,-2223.32 33.8,-2243.32 73.13,-2243.32 73.13,-2223.32 33.8,-2223.32"/>
<text xml:space="preserve" text-anchor="start" x="44.22" y="-2231.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="77.13" y="-2231.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/articles</text>
<text xml:space="preserve" text-anchor="start" x="145.05" y="-2230.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List supplier articles by S…</text>
<polygon fill="#272e3d" stroke="none" points="32.8,-2200.32 32.8,-2222.32 245.2,-2222.32 245.2,-2200.32 32.8,-2200.32"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-2200.32 32.8,-2222.32 245.2,-2222.32 245.2,-2200.32 32.8,-2200.32"/>
<polygon fill="#143826" stroke="none" points="33.8,-2201.32 33.8,-2221.32 71.8,-2221.32 71.8,-2201.32 33.8,-2201.32"/>
<text xml:space="preserve" text-anchor="start" x="40.55" y="-2209.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="75.8" y="-2209.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/articles</text>
<text xml:space="preserve" text-anchor="start" x="141.05" y="-2208.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Query supplier articles by …</text>
<polygon fill="#2a3242" stroke="none" points="32.8,-2178.32 32.8,-2200.32 245.2,-2200.32 245.2,-2178.32 32.8,-2178.32"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-2178.32 32.8,-2200.32 245.2,-2200.32 245.2,-2178.32 32.8,-2178.32"/>
<polygon fill="#301c44" stroke="none" points="33.8,-2179.32 33.8,-2199.32 98.77,-2199.32 98.77,-2179.32 33.8,-2179.32"/>
<text xml:space="preserve" text-anchor="start" x="50.79" y="-2187.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="102.77" y="-2187.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="184.16" y="-2186.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update supplier</text>
<polygon fill="#272e3d" stroke="none" points="32.8,-2156.32 32.8,-2178.32 245.2,-2178.32 245.2,-2156.32 32.8,-2156.32"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-2156.32 32.8,-2178.32 245.2,-2178.32 245.2,-2156.32 32.8,-2156.32"/>
<polygon fill="#3a181e" stroke="none" points="33.8,-2157.32 33.8,-2177.32 102,-2177.32 102,-2157.32 33.8,-2157.32"/>
<text xml:space="preserve" text-anchor="start" x="50.15" y="-2165.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="106" y="-2165.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="186.84" y="-2164.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete supplier</text>
</g>
<!-- Supplier&#45;&gt;Entity -->
<g id="edge20" class="edge">
<title>Supplier:e&#45;&gt;Entity:n</title>
<g id="a_edge20"><a xlink:title="Supplier → Entity (entityId)">
<path fill="none" stroke="#ff5f9e" stroke-width="1.4" d="M246.2,-2233.32C319.31,-2233.32 281.98,-2148.93 318,-2085.32 500.55,-1762.94 451.88,-1570.56 773.98,-1387.52 927.01,-1300.55 3892.08,-1428.33 3990.49,-1262.38"/>
<polygon fill="#ff5f9e" stroke="#ff5f9e" stroke-width="1.4" points="3992.81,-1263.16 3992.4,-1255.75 3988.1,-1261.8 3992.81,-1263.16"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="793.49" y="-1706.32" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff5f9e"> &#160;entityId &#160;</text>
</g>
<!-- ArticleSupplier&#45;&gt;Article -->
<g id="edge19" class="edge">
<title>ArticleSupplier:e&#45;&gt;Article:n</title>
<g id="a_edge19"><a xlink:title="ArticleSupplier → Article (sku)">
<path fill="none" stroke="#56c8c8" stroke-width="1.4" d="M222.5,-2637.12C291.67,-2637.12 212.26,-2533.02 264,-2487.12 312.76,-2443.86 346.38,-2483.22 409,-2465.12 429.04,-2459.33 436.81,-2460.61 452,-2446.32 583.33,-2322.81 495.43,-2196.96 636.99,-2085.32 685.48,-2047.08 710.76,-2060.4 772,-2052.52 803.04,-2048.52 2948.26,-2044.27 3099.06,-2014.84"/>
<polygon fill="#56c8c8" stroke="#56c8c8" stroke-width="1.4" points="3099.83,-2017.16 3105.43,-2012.3 3098.02,-2012.61 3099.83,-2017.16"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="649" y="-2237.12" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#56c8c8"> &#160;sku &#160;</text>
</g>
<!-- ArticleSupplier&#45;&gt;Supplier -->
<g id="edge18" class="edge">
<title>ArticleSupplier:e&#45;&gt;Supplier:n</title>
<g id="a_edge18"><a xlink:title="ArticleSupplier → Supplier (entityId)">
<path fill="none" stroke="#e0b25a" stroke-width="1.4" d="M222.5,-2615.12C258.5,-2615.12 238.09,-2566.07 221.5,-2534.12 197.37,-2487.63 155.82,-2508.16 125.98,-2465.12 90.25,-2413.57 87.13,-2390.33 86.91,-2331.29"/>
<polygon fill="#e0b25a" stroke="#e0b25a" stroke-width="1.4" points="89.36,-2331.43 86.9,-2324.44 84.46,-2331.44 89.36,-2331.43"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="145.49" y="-2457.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#e0b25a"> &#160;entityId &#160;</text>
</g>
<!-- Delivery -->
<g id="node16" class="node">
<title>Delivery</title>
<polygon fill="#33415c" stroke="none" points="305.94,-2683.12 305.94,-2714.12 532.06,-2714.12 532.06,-2683.12 305.94,-2683.12"/>
<polygon fill="none" stroke="#3f4c5f" points="305.94,-2683.12 305.94,-2714.12 532.06,-2714.12 532.06,-2683.12 305.94,-2683.12"/>
<text xml:space="preserve" text-anchor="start" x="395.65" y="-2699.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Delivery</text>
<text xml:space="preserve" text-anchor="start" x="402.24" y="-2690.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/delivery</text>
<polygon fill="#2a3242" stroke="none" points="305.94,-2661.12 305.94,-2683.12 532.06,-2683.12 532.06,-2661.12 305.94,-2661.12"/>
<polygon fill="none" stroke="#3f4c5f" points="305.94,-2661.12 305.94,-2683.12 532.06,-2683.12 532.06,-2661.12 305.94,-2661.12"/>
<polygon fill="#182b40" stroke="none" points="306.94,-2662.12 306.94,-2682.12 384.57,-2682.12 384.57,-2662.12 306.94,-2662.12"/>
<text xml:space="preserve" text-anchor="start" x="336.5" y="-2670.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="388.57" y="-2670.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="478.6" y="-2668.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List deliveries</text>
<polygon fill="#272e3d" stroke="none" points="305.94,-2639.12 305.94,-2661.12 532.06,-2661.12 532.06,-2639.12 305.94,-2639.12"/>
<polygon fill="none" stroke="#3f4c5f" points="305.94,-2639.12 305.94,-2661.12 532.06,-2661.12 532.06,-2639.12 305.94,-2639.12"/>
<polygon fill="#143826" stroke="none" points="306.94,-2640.12 306.94,-2660.12 382.79,-2660.12 382.79,-2640.12 306.94,-2640.12"/>
<text xml:space="preserve" text-anchor="start" x="332.61" y="-2648.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="386.79" y="-2648.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="473.26" y="-2646.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create delivery</text>
<polygon fill="#2a3242" stroke="none" points="305.94,-2617.12 305.94,-2639.12 532.06,-2639.12 532.06,-2617.12 305.94,-2617.12"/>
<polygon fill="none" stroke="#3f4c5f" points="305.94,-2617.12 305.94,-2639.12 532.06,-2639.12 532.06,-2617.12 305.94,-2617.12"/>
<polygon fill="#182b40" stroke="none" points="306.94,-2618.12 306.94,-2638.12 380.94,-2638.12 380.94,-2618.12 306.94,-2618.12"/>
<text xml:space="preserve" text-anchor="start" x="334.69" y="-2626.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="384.94" y="-2626.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="484.38" y="-2624.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get delivery</text>
<polygon fill="#272e3d" stroke="none" points="305.94,-2595.12 305.94,-2617.12 532.06,-2617.12 532.06,-2595.12 305.94,-2595.12"/>
<polygon fill="none" stroke="#3f4c5f" points="305.94,-2595.12 305.94,-2617.12 532.06,-2617.12 532.06,-2595.12 305.94,-2595.12"/>
<polygon fill="#182b40" stroke="none" points="306.94,-2596.12 306.94,-2616.12 345.07,-2616.12 345.07,-2596.12 306.94,-2596.12"/>
<text xml:space="preserve" text-anchor="start" x="316.76" y="-2604.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="349.07" y="-2604.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/file/{fileId}</text>
<text xml:space="preserve" text-anchor="start" x="427.91" y="-2602.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get delivery attachment fil…</text>
<polygon fill="#2a3242" stroke="none" points="305.94,-2573.12 305.94,-2595.12 532.06,-2595.12 532.06,-2573.12 305.94,-2573.12"/>
<polygon fill="none" stroke="#3f4c5f" points="305.94,-2573.12 305.94,-2595.12 532.06,-2595.12 532.06,-2573.12 305.94,-2573.12"/>
<polygon fill="#143826" stroke="none" points="306.94,-2574.12 306.94,-2594.12 353.92,-2594.12 353.92,-2574.12 306.94,-2574.12"/>
<text xml:space="preserve" text-anchor="start" x="318.18" y="-2582.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="357.92" y="-2582.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/pdf</text>
<text xml:space="preserve" text-anchor="start" x="421.66" y="-2580.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Generate and attach deliver…</text>
<polygon fill="#272e3d" stroke="none" points="305.94,-2551.12 305.94,-2573.12 532.06,-2573.12 532.06,-2551.12 305.94,-2551.12"/>
<polygon fill="none" stroke="#3f4c5f" points="305.94,-2551.12 305.94,-2573.12 532.06,-2573.12 532.06,-2551.12 305.94,-2551.12"/>
<polygon fill="#301c44" stroke="none" points="306.94,-2552.12 306.94,-2572.12 376.64,-2572.12 376.64,-2552.12 306.94,-2552.12"/>
<text xml:space="preserve" text-anchor="start" x="326.29" y="-2560.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="380.64" y="-2560.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="471.47" y="-2558.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update delivery</text>
<polygon fill="#2a3242" stroke="none" points="305.94,-2529.12 305.94,-2551.12 532.06,-2551.12 532.06,-2529.12 305.94,-2529.12"/>
<polygon fill="none" stroke="#3f4c5f" points="305.94,-2529.12 305.94,-2551.12 532.06,-2551.12 532.06,-2529.12 305.94,-2529.12"/>
<polygon fill="#3a181e" stroke="none" points="306.94,-2530.12 306.94,-2550.12 379.86,-2550.12 379.86,-2530.12 306.94,-2530.12"/>
<text xml:space="preserve" text-anchor="start" x="325.65" y="-2538.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="383.86" y="-2538.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="474.15" y="-2536.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete delivery</text>
<polygon fill="#272e3d" stroke="none" points="305.94,-2507.12 305.94,-2529.12 532.06,-2529.12 532.06,-2507.12 305.94,-2507.12"/>
<polygon fill="none" stroke="#3f4c5f" points="305.94,-2507.12 305.94,-2529.12 532.06,-2529.12 532.06,-2507.12 305.94,-2507.12"/>
<polygon fill="#3a181e" stroke="none" points="306.94,-2508.12 306.94,-2528.12 348.44,-2528.12 348.44,-2508.12 306.94,-2508.12"/>
<text xml:space="preserve" text-anchor="start" x="309.94" y="-2516.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="352.44" y="-2516.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/file/{fileId}</text>
<text xml:space="preserve" text-anchor="start" x="431.01" y="-2514.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete delivery file attach…</text>
</g>
<!-- Delivery&#45;&gt;Article -->
<g id="edge16" class="edge">
<title>Delivery:e&#45;&gt;Article:n</title>
<g id="a_edge16"><a xlink:title="Delivery → Article (lines.sku)">
<path fill="none" stroke="#5aa7e6" stroke-width="1.4" d="M533.06,-2650.12C826.36,-2650.12 534.93,-2145.8 813,-2052.52 872.04,-2032.71 2985.94,-2073.1 3122.12,-2017.41"/>
<polygon fill="#5aa7e6" stroke="#5aa7e6" stroke-width="1.4" points="3123.67,-2019.31 3127.39,-2012.9 3120.48,-2015.59 3123.67,-2019.31"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="773.43" y="-2237.12" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#5aa7e6"> &#160;lines.sku &#160;</text>
</g>
<!-- Delivery&#45;&gt;Supplier -->
<g id="edge15" class="edge">
<title>Delivery:w&#45;&gt;Supplier:n</title>
<g id="a_edge15"><a xlink:title="Delivery → Supplier (supplierId)">
<path fill="none" stroke="#4ecb8f" stroke-width="1.4" d="M304.94,-2650.12C230.24,-2650.12 288.29,-2557.75 264,-2487.12 238.97,-2414.34 194.73,-2403.21 191.31,-2331.39"/>
<polygon fill="#4ecb8f" stroke="#4ecb8f" stroke-width="1.4" points="193.76,-2331.38 191.15,-2324.44 188.86,-2331.49 193.76,-2331.38"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="278.65" y="-2457.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#4ecb8f"> &#160;supplierId &#160;</text>
</g>
<!-- Ledger -->
<g id="node23" class="node">
<title>Ledger</title>
<polygon fill="#33415c" stroke="none" points="3991.61,-2266.32 3991.61,-2301.32 4316.39,-2301.32 4316.39,-2266.32 3991.61,-2266.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3991.61,-2266.32 3991.61,-2301.32 4316.39,-2301.32 4316.39,-2266.32 3991.61,-2266.32"/>
<polygon fill="#33415c" stroke="none" points="3993.61,-2295.32 3993.61,-2299.32 4100.54,-2299.32 4100.54,-2295.32 3993.61,-2295.32"/>
<polygon fill="#33415c" stroke="none" points="4100.54,-2295.32 4100.54,-2299.32 4207.46,-2299.32 4207.46,-2295.32 4100.54,-2295.32"/>
<polygon fill="#33415c" stroke="none" points="4207.46,-2295.32 4207.46,-2299.32 4314.39,-2299.32 4314.39,-2295.32 4207.46,-2295.32"/>
<text xml:space="preserve" text-anchor="start" x="4134" y="-2282.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Ledger</text>
<text xml:space="preserve" text-anchor="start" x="4140.24" y="-2273.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/ledger</text>
<polygon fill="#2a3242" stroke="none" points="3991.61,-2244.32 3991.61,-2266.32 4316.39,-2266.32 4316.39,-2244.32 3991.61,-2244.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3991.61,-2244.32 3991.61,-2266.32 4316.39,-2266.32 4316.39,-2244.32 3991.61,-2244.32"/>
<polygon fill="#182b40" stroke="none" points="3992.61,-2245.32 3992.61,-2265.32 4084.15,-2265.32 4084.15,-2245.32 3992.61,-2245.32"/>
<text xml:space="preserve" text-anchor="start" x="4029.13" y="-2253.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4088.15" y="-2253.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="4206.01" y="-2252.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Query ledger by manifest ar…</text>
<polygon fill="#272e3d" stroke="none" points="3991.61,-2222.32 3991.61,-2244.32 4316.39,-2244.32 4316.39,-2222.32 3991.61,-2222.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3991.61,-2222.32 3991.61,-2244.32 4316.39,-2244.32 4316.39,-2222.32 3991.61,-2222.32"/>
<polygon fill="#182b40" stroke="none" points="3992.61,-2223.32 3992.61,-2243.32 4070.37,-2243.32 4070.37,-2223.32 3992.61,-2223.32"/>
<text xml:space="preserve" text-anchor="start" x="4022.24" y="-2231.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4074.37" y="-2231.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/history</text>
<text xml:space="preserve" text-anchor="start" x="4198" y="-2230.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Query company&#45;wide ledger h…</text>
<polygon fill="#2a3242" stroke="none" points="3991.61,-2200.32 3991.61,-2222.32 4316.39,-2222.32 4316.39,-2200.32 3991.61,-2200.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3991.61,-2200.32 3991.61,-2222.32 4316.39,-2222.32 4316.39,-2200.32 3991.61,-2200.32"/>
<polygon fill="#182b40" stroke="none" points="3992.61,-2201.32 3992.61,-2221.32 4030.61,-2221.32 4030.61,-2201.32 3992.61,-2201.32"/>
<text xml:space="preserve" text-anchor="start" x="4002.36" y="-2209.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4034.61" y="-2209.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/manifestarticle/{manifestarticleId}</text>
<text xml:space="preserve" text-anchor="start" x="4206.01" y="-2208.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Query ledger by manifest ar…</text>
<polygon fill="#272e3d" stroke="none" points="3991.61,-2178.32 3991.61,-2200.32 4316.39,-2200.32 4316.39,-2178.32 3991.61,-2178.32"/>
<polygon fill="none" stroke="#3f4c5f" points="3991.61,-2178.32 3991.61,-2200.32 4316.39,-2200.32 4316.39,-2178.32 3991.61,-2178.32"/>
<polygon fill="#182b40" stroke="none" points="3992.61,-2179.32 3992.61,-2199.32 4071.22,-2199.32 4071.22,-2179.32 3992.61,-2179.32"/>
<text xml:space="preserve" text-anchor="start" x="4022.66" y="-2187.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4075.22" y="-2187.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/sku/{sku}</text>
<text xml:space="preserve" text-anchor="start" x="4212.24" y="-2186.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Query ledger by article SKU</text>
</g>
<!-- Delivery&#45;&gt;Ledger -->
<g id="edge17" class="edge">
<title>Delivery:e&#45;&gt;Ledger:n</title>
<g id="a_edge17"><a xlink:title="Delivery → Ledger (ledger)">
<path fill="none" stroke="#ff7aa8" stroke-width="1.4" d="M533.06,-2628.12C1821.12,-2628.12 2138.84,-2503.11 3425.98,-2454.32 3440.06,-2453.78 3920.39,-2452.59 3933,-2446.32 4003.99,-2411 4044.03,-2384.68 4046.91,-2309.26"/>
<polygon fill="#ff7aa8" stroke="#ff7aa8" stroke-width="1.4" points="4049.35,-2309.48 4047.03,-2302.44 4044.45,-2309.39 4049.35,-2309.48"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3443.49" y="-2457.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff7aa8"> &#160;ledger &#160;</text>
</g>
<!-- Quote -->
<g id="node17" class="node">
<title>Quote</title>
<polygon fill="#33415c" stroke="none" points="852.15,-2323.32 852.15,-2354.32 1081.85,-2354.32 1081.85,-2323.32 852.15,-2323.32"/>
<polygon fill="none" stroke="#3f4c5f" points="852.15,-2323.32 852.15,-2354.32 1081.85,-2354.32 1081.85,-2323.32 852.15,-2323.32"/>
<text xml:space="preserve" text-anchor="start" x="949.67" y="-2339.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Quote</text>
<text xml:space="preserve" text-anchor="start" x="954.49" y="-2330.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/quote</text>
<polygon fill="#2a3242" stroke="none" points="852.15,-2301.32 852.15,-2323.32 1081.85,-2323.32 1081.85,-2301.32 852.15,-2301.32"/>
<polygon fill="none" stroke="#3f4c5f" points="852.15,-2301.32 852.15,-2323.32 1081.85,-2323.32 1081.85,-2301.32 852.15,-2301.32"/>
<polygon fill="#182b40" stroke="none" points="853.15,-2302.32 853.15,-2322.32 935.23,-2322.32 935.23,-2302.32 853.15,-2302.32"/>
<text xml:space="preserve" text-anchor="start" x="884.94" y="-2310.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="939.23" y="-2310.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1038.15" y="-2309.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List quotes</text>
<polygon fill="#272e3d" stroke="none" points="852.15,-2279.32 852.15,-2301.32 1081.85,-2301.32 1081.85,-2279.32 852.15,-2279.32"/>
<polygon fill="none" stroke="#3f4c5f" points="852.15,-2279.32 852.15,-2301.32 1081.85,-2301.32 1081.85,-2279.32 852.15,-2279.32"/>
<polygon fill="#143826" stroke="none" points="853.15,-2280.32 853.15,-2300.32 932.71,-2300.32 932.71,-2280.32 853.15,-2280.32"/>
<text xml:space="preserve" text-anchor="start" x="880.68" y="-2288.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="936.71" y="-2288.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1030.59" y="-2287.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create quote</text>
<polygon fill="#2a3242" stroke="none" points="852.15,-2257.32 852.15,-2279.32 1081.85,-2279.32 1081.85,-2257.32 852.15,-2257.32"/>
<polygon fill="none" stroke="#3f4c5f" points="852.15,-2257.32 852.15,-2279.32 1081.85,-2279.32 1081.85,-2257.32 852.15,-2257.32"/>
<polygon fill="#182b40" stroke="none" points="853.15,-2258.32 853.15,-2278.32 930.86,-2278.32 930.86,-2258.32 853.15,-2258.32"/>
<text xml:space="preserve" text-anchor="start" x="882.75" y="-2266.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="934.86" y="-2266.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1041.71" y="-2265.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get quote</text>
<polygon fill="#272e3d" stroke="none" points="852.15,-2235.32 852.15,-2257.32 1081.85,-2257.32 1081.85,-2235.32 852.15,-2235.32"/>
<polygon fill="none" stroke="#3f4c5f" points="852.15,-2235.32 852.15,-2257.32 1081.85,-2257.32 1081.85,-2235.32 852.15,-2235.32"/>
<polygon fill="#182b40" stroke="none" points="853.15,-2236.32 853.15,-2256.32 891.44,-2256.32 891.44,-2236.32 853.15,-2236.32"/>
<text xml:space="preserve" text-anchor="start" x="863.04" y="-2244.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="895.44" y="-2244.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/file/{fileId}</text>
<text xml:space="preserve" text-anchor="start" x="974.57" y="-2243.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get quote attachment file c…</text>
<polygon fill="#2a3242" stroke="none" points="852.15,-2213.32 852.15,-2235.32 1081.85,-2235.32 1081.85,-2213.32 852.15,-2213.32"/>
<polygon fill="none" stroke="#3f4c5f" points="852.15,-2213.32 852.15,-2235.32 1081.85,-2235.32 1081.85,-2213.32 852.15,-2213.32"/>
<polygon fill="#143826" stroke="none" points="853.15,-2214.32 853.15,-2234.32 904.66,-2234.32 904.66,-2214.32 853.15,-2214.32"/>
<text xml:space="preserve" text-anchor="start" x="866.66" y="-2222.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="908.66" y="-2222.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/order</text>
<text xml:space="preserve" text-anchor="start" x="991.47" y="-2221.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create order from quote</text>
<polygon fill="#272e3d" stroke="none" points="852.15,-2191.32 852.15,-2213.32 1081.85,-2213.32 1081.85,-2191.32 852.15,-2191.32"/>
<polygon fill="none" stroke="#3f4c5f" points="852.15,-2191.32 852.15,-2213.32 1081.85,-2213.32 1081.85,-2191.32 852.15,-2191.32"/>
<polygon fill="#143826" stroke="none" points="853.15,-2192.32 853.15,-2212.32 899.99,-2212.32 899.99,-2192.32 853.15,-2192.32"/>
<text xml:space="preserve" text-anchor="start" x="864.32" y="-2200.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="903.99" y="-2200.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/pdf</text>
<text xml:space="preserve" text-anchor="start" x="967.44" y="-2199.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Generate and attach quote P…</text>
<polygon fill="#2a3242" stroke="none" points="852.15,-2169.32 852.15,-2191.32 1081.85,-2191.32 1081.85,-2169.32 852.15,-2169.32"/>
<polygon fill="none" stroke="#3f4c5f" points="852.15,-2169.32 852.15,-2191.32 1081.85,-2191.32 1081.85,-2169.32 852.15,-2169.32"/>
<polygon fill="#301c44" stroke="none" points="853.15,-2170.32 853.15,-2190.32 926.56,-2190.32 926.56,-2170.32 853.15,-2170.32"/>
<text xml:space="preserve" text-anchor="start" x="874.36" y="-2178.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="930.56" y="-2178.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1028.81" y="-2177.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update quote</text>
<polygon fill="#272e3d" stroke="none" points="852.15,-2147.32 852.15,-2169.32 1081.85,-2169.32 1081.85,-2147.32 852.15,-2147.32"/>
<polygon fill="none" stroke="#3f4c5f" points="852.15,-2147.32 852.15,-2169.32 1081.85,-2169.32 1081.85,-2147.32 852.15,-2147.32"/>
<polygon fill="#3a181e" stroke="none" points="853.15,-2148.32 853.15,-2168.32 929.78,-2168.32 929.78,-2148.32 853.15,-2148.32"/>
<text xml:space="preserve" text-anchor="start" x="873.72" y="-2156.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="933.78" y="-2156.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1031.48" y="-2155.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete quote</text>
<polygon fill="#2a3242" stroke="none" points="852.15,-2125.32 852.15,-2147.32 1081.85,-2147.32 1081.85,-2125.32 852.15,-2125.32"/>
<polygon fill="none" stroke="#3f4c5f" points="852.15,-2125.32 852.15,-2147.32 1081.85,-2147.32 1081.85,-2125.32 852.15,-2125.32"/>
<polygon fill="#3a181e" stroke="none" points="853.15,-2126.32 853.15,-2146.32 894.66,-2146.32 894.66,-2126.32 853.15,-2126.32"/>
<text xml:space="preserve" text-anchor="start" x="856.15" y="-2134.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="898.66" y="-2134.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/file/{fileId}</text>
<text xml:space="preserve" text-anchor="start" x="977.23" y="-2133.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete quote file attachment</text>
</g>
<!-- Quote&#45;&gt;Entity -->
<g id="edge6" class="edge">
<title>Quote:e&#45;&gt;Entity:n</title>
<g id="a_edge6"><a xlink:title="Quote → Entity (entityId)">
<path fill="none" stroke="#ff9f5a" stroke-width="1.4" d="M1082.85,-2268.32C1166.21,-2268.32 1058.98,-2137.49 1124,-2085.32 1145.48,-2068.08 9026.47,-2064.01 9054,-2063.32 9162.98,-2060.56 9958.78,-2095.42 10034,-2016.52 10226.9,-1814.18 10225.24,-1591.43 10034,-1387.52 9995.08,-1346.02 9579.86,-1356.59 9523,-1354.72 9269.03,-1346.35 5202.76,-1360.06 4949,-1346.72 4852,-1341.62 4099.93,-1353.15 4054.48,-1262.51"/>
<polygon fill="#ff9f5a" stroke="#ff9f5a" stroke-width="1.4" points="4056.88,-1261.99 4052.83,-1255.78 4052.12,-1263.16 4056.88,-1261.99"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="10197.56" y="-1706.32" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff9f5a"> &#160;entityId &#160;</text>
</g>
<!-- Quote&#45;&gt;Article -->
<g id="edge7" class="edge">
<title>Quote:e&#45;&gt;Article:n</title>
<g id="a_edge7"><a xlink:title="Quote → Article (lines.sku)">
<path fill="none" stroke="#5cd6d6" stroke-width="1.4" d="M1082.85,-2290.32C1175.77,-2290.32 1052.19,-2144.3 1124,-2085.32 1170.95,-2046.76 9830.09,-2106.33 9873,-2063.32 9876.39,-2059.92 9876.38,-2055.92 9873,-2052.52 9808.43,-1987.56 3401.73,-2100.44 3157.75,-2016.62"/>
<polygon fill="#5cd6d6" stroke="#5cd6d6" stroke-width="1.4" points="3159.45,-2014.82 3152.33,-2012.75 3156.6,-2018.81 3159.45,-2014.82"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="9898.05" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#5cd6d6"> &#160;lines.sku &#160;</text>
</g>
<!-- Order -->
<g id="node18" class="node">
<title>Order</title>
<polygon fill="#33415c" stroke="none" points="866.83,-1845.52 866.83,-1880.52 1095.17,-1880.52 1095.17,-1845.52 866.83,-1845.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1845.52 866.83,-1880.52 1095.17,-1880.52 1095.17,-1845.52 866.83,-1845.52"/>
<polygon fill="#33415c" stroke="none" points="868.83,-1874.52 868.83,-1878.52 924.91,-1878.52 924.91,-1874.52 868.83,-1874.52"/>
<polygon fill="#33415c" stroke="none" points="924.91,-1874.52 924.91,-1878.52 981,-1878.52 981,-1874.52 924.91,-1874.52"/>
<polygon fill="#33415c" stroke="none" points="981,-1874.52 981,-1878.52 1037.09,-1878.52 1037.09,-1874.52 981,-1874.52"/>
<polygon fill="#33415c" stroke="none" points="1037.09,-1874.52 1037.09,-1878.52 1093.17,-1878.52 1093.17,-1874.52 1037.09,-1874.52"/>
<text xml:space="preserve" text-anchor="start" x="964.66" y="-1861.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Order</text>
<text xml:space="preserve" text-anchor="start" x="969.24" y="-1852.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/order</text>
<polygon fill="#2a3242" stroke="none" points="866.83,-1823.52 866.83,-1845.52 1095.17,-1845.52 1095.17,-1823.52 866.83,-1823.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1823.52 866.83,-1845.52 1095.17,-1845.52 1095.17,-1823.52 866.83,-1823.52"/>
<polygon fill="#182b40" stroke="none" points="867.83,-1824.52 867.83,-1844.52 949.9,-1844.52 949.9,-1824.52 867.83,-1824.52"/>
<text xml:space="preserve" text-anchor="start" x="899.61" y="-1832.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="953.9" y="-1832.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1052.83" y="-1831.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List orders</text>
<polygon fill="#272e3d" stroke="none" points="866.83,-1801.52 866.83,-1823.52 1095.17,-1823.52 1095.17,-1801.52 866.83,-1801.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1801.52 866.83,-1823.52 1095.17,-1823.52 1095.17,-1801.52 866.83,-1801.52"/>
<polygon fill="#143826" stroke="none" points="867.83,-1802.52 867.83,-1822.52 947.38,-1822.52 947.38,-1802.52 867.83,-1802.52"/>
<text xml:space="preserve" text-anchor="start" x="895.35" y="-1810.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="951.38" y="-1810.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1045.26" y="-1809.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create order</text>
<polygon fill="#2a3242" stroke="none" points="866.83,-1779.52 866.83,-1801.52 1095.17,-1801.52 1095.17,-1779.52 866.83,-1779.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1779.52 866.83,-1801.52 1095.17,-1801.52 1095.17,-1779.52 866.83,-1779.52"/>
<polygon fill="#182b40" stroke="none" points="867.83,-1780.52 867.83,-1800.52 945.53,-1800.52 945.53,-1780.52 867.83,-1780.52"/>
<text xml:space="preserve" text-anchor="start" x="897.43" y="-1788.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="949.53" y="-1788.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1056.38" y="-1787.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get order</text>
<polygon fill="#272e3d" stroke="none" points="866.83,-1757.52 866.83,-1779.52 1095.17,-1779.52 1095.17,-1757.52 866.83,-1757.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1757.52 866.83,-1779.52 1095.17,-1779.52 1095.17,-1757.52 866.83,-1757.52"/>
<polygon fill="#182b40" stroke="none" points="867.83,-1758.52 867.83,-1778.52 906.11,-1778.52 906.11,-1758.52 867.83,-1758.52"/>
<text xml:space="preserve" text-anchor="start" x="877.72" y="-1766.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="910.11" y="-1766.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/file/{fileId}</text>
<text xml:space="preserve" text-anchor="start" x="989.24" y="-1765.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get order attachment file c…</text>
<polygon fill="#2a3242" stroke="none" points="866.83,-1735.52 866.83,-1757.52 1095.17,-1757.52 1095.17,-1735.52 866.83,-1735.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1735.52 866.83,-1757.52 1095.17,-1757.52 1095.17,-1735.52 866.83,-1735.52"/>
<polygon fill="#182b40" stroke="none" points="867.83,-1736.52 867.83,-1756.52 912.07,-1756.52 912.07,-1736.52 867.83,-1736.52"/>
<text xml:space="preserve" text-anchor="start" x="880.7" y="-1744.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="916.07" y="-1744.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/payment</text>
<text xml:space="preserve" text-anchor="start" x="999.9" y="-1743.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List payments of an order</text>
<polygon fill="#272e3d" stroke="none" points="866.83,-1713.52 866.83,-1735.52 1095.17,-1735.52 1095.17,-1713.52 866.83,-1713.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1713.52 866.83,-1735.52 1095.17,-1735.52 1095.17,-1713.52 866.83,-1713.52"/>
<polygon fill="#182b40" stroke="none" points="867.83,-1714.52 867.83,-1734.52 910.37,-1734.52 910.37,-1714.52 867.83,-1714.52"/>
<text xml:space="preserve" text-anchor="start" x="879.85" y="-1722.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="914.37" y="-1722.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/shipment</text>
<text xml:space="preserve" text-anchor="start" x="998.13" y="-1721.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List shipments of an order</text>
<polygon fill="#2a3242" stroke="none" points="866.83,-1691.52 866.83,-1713.52 1095.17,-1713.52 1095.17,-1691.52 866.83,-1691.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1691.52 866.83,-1713.52 1095.17,-1713.52 1095.17,-1691.52 866.83,-1691.52"/>
<polygon fill="#182b40" stroke="none" points="867.83,-1692.52 867.83,-1712.52 912.18,-1712.52 912.18,-1692.52 867.83,-1692.52"/>
<text xml:space="preserve" text-anchor="start" x="880.75" y="-1700.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="916.18" y="-1700.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/shipping</text>
<text xml:space="preserve" text-anchor="start" x="1000.79" y="-1699.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List shippings of an order</text>
<polygon fill="#272e3d" stroke="none" points="866.83,-1669.52 866.83,-1691.52 1095.17,-1691.52 1095.17,-1669.52 866.83,-1669.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1669.52 866.83,-1691.52 1095.17,-1691.52 1095.17,-1669.52 866.83,-1669.52"/>
<polygon fill="#143826" stroke="none" points="867.83,-1670.52 867.83,-1690.52 912.81,-1690.52 912.81,-1670.52 867.83,-1670.52"/>
<text xml:space="preserve" text-anchor="start" x="878.06" y="-1678.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="916.81" y="-1678.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/payment</text>
<text xml:space="preserve" text-anchor="start" x="1002.12" y="-1677.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add payment to an order</text>
<polygon fill="#2a3242" stroke="none" points="866.83,-1647.52 866.83,-1669.52 1095.17,-1669.52 1095.17,-1647.52 866.83,-1647.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1647.52 866.83,-1669.52 1095.17,-1669.52 1095.17,-1647.52 866.83,-1647.52"/>
<polygon fill="#143826" stroke="none" points="867.83,-1648.52 867.83,-1668.52 914.66,-1668.52 914.66,-1648.52 867.83,-1648.52"/>
<text xml:space="preserve" text-anchor="start" x="878.99" y="-1656.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="918.66" y="-1656.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/pdf</text>
<text xml:space="preserve" text-anchor="start" x="982.11" y="-1655.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Generate and attach order P…</text>
<polygon fill="#272e3d" stroke="none" points="866.83,-1625.52 866.83,-1647.52 1095.17,-1647.52 1095.17,-1625.52 866.83,-1625.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1625.52 866.83,-1647.52 1095.17,-1647.52 1095.17,-1625.52 866.83,-1625.52"/>
<polygon fill="#143826" stroke="none" points="867.83,-1626.52 867.83,-1646.52 906.96,-1646.52 906.96,-1626.52 867.83,-1626.52"/>
<text xml:space="preserve" text-anchor="start" x="875.14" y="-1634.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="910.96" y="-1634.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/shipment</text>
<text xml:space="preserve" text-anchor="start" x="987.9" y="-1633.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create shipment for an order</text>
<polygon fill="#2a3242" stroke="none" points="866.83,-1603.52 866.83,-1625.52 1095.17,-1625.52 1095.17,-1603.52 866.83,-1603.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1603.52 866.83,-1625.52 1095.17,-1625.52 1095.17,-1603.52 866.83,-1603.52"/>
<polygon fill="#143826" stroke="none" points="867.83,-1604.52 867.83,-1624.52 908.78,-1624.52 908.78,-1604.52 867.83,-1604.52"/>
<text xml:space="preserve" text-anchor="start" x="876.05" y="-1612.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="912.78" y="-1612.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/shipping</text>
<text xml:space="preserve" text-anchor="start" x="990.56" y="-1611.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create shipping for an order</text>
<polygon fill="#272e3d" stroke="none" points="866.83,-1581.52 866.83,-1603.52 1095.17,-1603.52 1095.17,-1581.52 866.83,-1581.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1581.52 866.83,-1603.52 1095.17,-1603.52 1095.17,-1581.52 866.83,-1581.52"/>
<polygon fill="#301c44" stroke="none" points="867.83,-1582.52 867.83,-1602.52 941.23,-1602.52 941.23,-1582.52 867.83,-1582.52"/>
<text xml:space="preserve" text-anchor="start" x="889.03" y="-1590.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="945.23" y="-1590.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1043.48" y="-1589.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update order</text>
<polygon fill="#2a3242" stroke="none" points="866.83,-1559.52 866.83,-1581.52 1095.17,-1581.52 1095.17,-1559.52 866.83,-1559.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1559.52 866.83,-1581.52 1095.17,-1581.52 1095.17,-1559.52 866.83,-1559.52"/>
<polygon fill="#3a181e" stroke="none" points="867.83,-1560.52 867.83,-1580.52 944.45,-1580.52 944.45,-1560.52 867.83,-1560.52"/>
<text xml:space="preserve" text-anchor="start" x="888.39" y="-1568.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="948.45" y="-1568.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1046.15" y="-1567.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete order</text>
<polygon fill="#272e3d" stroke="none" points="866.83,-1537.52 866.83,-1559.52 1095.17,-1559.52 1095.17,-1537.52 866.83,-1537.52"/>
<polygon fill="none" stroke="#3f4c5f" points="866.83,-1537.52 866.83,-1559.52 1095.17,-1559.52 1095.17,-1537.52 866.83,-1537.52"/>
<polygon fill="#3a181e" stroke="none" points="867.83,-1538.52 867.83,-1558.52 909.33,-1558.52 909.33,-1538.52 867.83,-1538.52"/>
<text xml:space="preserve" text-anchor="start" x="870.83" y="-1546.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="913.33" y="-1546.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/file/{fileId}</text>
<text xml:space="preserve" text-anchor="start" x="991.9" y="-1545.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete order file attachment</text>
</g>
<!-- Quote&#45;&gt;Order -->
<g id="edge8" class="edge">
<title>Quote:e&#45;&gt;Order:n</title>
<g id="a_edge8"><a xlink:title="Quote → Order (convert order)">
<path fill="none" stroke="#ff7fc2" stroke-width="1.4" d="M1082.85,-2290.32C1120.4,-2290.32 1104.09,-2151.57 1081.85,-2121.32 1031.59,-2052.96 950.61,-2131.39 899.97,-2063.32 853.03,-2000.19 893.61,-1963.97 896.69,-1888.43"/>
<polygon fill="#ff7fc2" stroke="#ff7fc2" stroke-width="1.4" points="899.13,-1888.68 896.83,-1881.64 894.23,-1888.58 899.13,-1888.68"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="931.49" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff7fc2"> &#160;convert order &#160;</text>
</g>
<!-- Order&#45;&gt;Entity -->
<g id="edge1" class="edge">
<title>Order:e&#45;&gt;Entity:n</title>
<g id="a_edge1"><a xlink:title="Order → Entity (entityId)">
<path fill="none" stroke="#ff6b6b" stroke-width="1.4" d="M1096.17,-1790.52C1283.95,-1790.52 1072.05,-1499.2 1223,-1387.52 1284.14,-1342.28 3888.88,-1389.67 3961,-1365.52 4037.13,-1340.02 4106.34,-1337.28 4111.38,-1262.67"/>
<polygon fill="#ff6b6b" stroke="#ff6b6b" stroke-width="1.4" points="4113.82,-1262.91 4111.6,-1255.83 4108.92,-1262.75 4113.82,-1262.91"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4015.37" y="-1357.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff6b6b"> &#160;entityId &#160;</text>
</g>
<!-- Order&#45;&gt;Article -->
<g id="edge2" class="edge">
<title>Order:e&#45;&gt;Article:n</title>
<g id="a_edge2"><a xlink:title="Order → Article (lines.sku)">
<path fill="none" stroke="#6bdf9a" stroke-width="1.4" d="M1096.17,-1812.52C1199.55,-1812.52 1132.13,-1958.21 1223,-2007.5 1268.92,-2032.41 3040.79,-2059.66 3165.31,-2012.91"/>
<polygon fill="#6bdf9a" stroke="#6bdf9a" stroke-width="1.4" points="3166.54,-2015.06 3170.53,-2008.81 3163.52,-2011.2 3166.54,-2015.06"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2660" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#6bdf9a"> &#160;lines.sku &#160;</text>
</g>
<!-- Shipment -->
<g id="node19" class="node">
<title>Shipment</title>
<polygon fill="#33415c" stroke="none" points="1539.49,-2321.32 1539.49,-2356.32 1770.51,-2356.32 1770.51,-2321.32 1539.49,-2321.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1539.49,-2321.32 1539.49,-2356.32 1770.51,-2356.32 1770.51,-2321.32 1539.49,-2321.32"/>
<polygon fill="#33415c" stroke="none" points="1541.49,-2350.32 1541.49,-2354.32 1768.51,-2354.32 1768.51,-2350.32 1541.49,-2350.32"/>
<text xml:space="preserve" text-anchor="start" x="1627.67" y="-2337.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Shipment</text>
<text xml:space="preserve" text-anchor="start" x="1635.49" y="-2328.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/shipment</text>
<polygon fill="#2a3242" stroke="none" points="1539.49,-2299.32 1539.49,-2321.32 1770.51,-2321.32 1770.51,-2299.32 1539.49,-2299.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1539.49,-2299.32 1539.49,-2321.32 1770.51,-2321.32 1770.51,-2299.32 1539.49,-2299.32"/>
<polygon fill="#182b40" stroke="none" points="1540.49,-2300.32 1540.49,-2320.32 1618.86,-2320.32 1618.86,-2300.32 1540.49,-2300.32"/>
<text xml:space="preserve" text-anchor="start" x="1570.43" y="-2308.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1622.86" y="-2308.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1714.38" y="-2307.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List shipments</text>
<polygon fill="#272e3d" stroke="none" points="1539.49,-2277.32 1539.49,-2299.32 1770.51,-2299.32 1770.51,-2277.32 1539.49,-2277.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1539.49,-2277.32 1539.49,-2299.32 1770.51,-2299.32 1770.51,-2277.32 1539.49,-2277.32"/>
<polygon fill="#182b40" stroke="none" points="1540.49,-2278.32 1540.49,-2298.32 1607.52,-2298.32 1607.52,-2278.32 1540.49,-2278.32"/>
<text xml:space="preserve" text-anchor="start" x="1564.76" y="-2286.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1611.52" y="-2286.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1697.04" y="-2285.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get shipment by ID</text>
<polygon fill="#2a3242" stroke="none" points="1539.49,-2255.32 1539.49,-2277.32 1770.51,-2277.32 1770.51,-2255.32 1539.49,-2255.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1539.49,-2255.32 1539.49,-2277.32 1770.51,-2277.32 1770.51,-2255.32 1539.49,-2255.32"/>
<polygon fill="#182b40" stroke="none" points="1540.49,-2256.32 1540.49,-2276.32 1578.62,-2276.32 1578.62,-2256.32 1540.49,-2256.32"/>
<text xml:space="preserve" text-anchor="start" x="1550.31" y="-2264.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1582.62" y="-2264.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/file/{fileId}</text>
<text xml:space="preserve" text-anchor="start" x="1661.46" y="-2263.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get shipment attachment fil…</text>
<polygon fill="#272e3d" stroke="none" points="1539.49,-2233.32 1539.49,-2255.32 1770.51,-2255.32 1770.51,-2233.32 1539.49,-2233.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1539.49,-2233.32 1539.49,-2255.32 1770.51,-2255.32 1770.51,-2233.32 1539.49,-2233.32"/>
<polygon fill="#182b40" stroke="none" points="1540.49,-2234.32 1540.49,-2254.32 1582.48,-2254.32 1582.48,-2234.32 1540.49,-2234.32"/>
<text xml:space="preserve" text-anchor="start" x="1552.24" y="-2242.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1586.48" y="-2242.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/shipping</text>
<text xml:space="preserve" text-anchor="start" x="1666.34" y="-2241.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List packages of a shipment</text>
<polygon fill="#2a3242" stroke="none" points="1539.49,-2211.32 1539.49,-2233.32 1770.51,-2233.32 1770.51,-2211.32 1539.49,-2211.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1539.49,-2211.32 1539.49,-2233.32 1770.51,-2233.32 1770.51,-2211.32 1539.49,-2211.32"/>
<polygon fill="#143826" stroke="none" points="1540.49,-2212.32 1540.49,-2232.32 1586.88,-2232.32 1586.88,-2212.32 1540.49,-2212.32"/>
<text xml:space="preserve" text-anchor="start" x="1551.44" y="-2220.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1590.88" y="-2220.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/pdf</text>
<text xml:space="preserve" text-anchor="start" x="1653.44" y="-2219.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Generate and attach shipmen…</text>
<polygon fill="#272e3d" stroke="none" points="1539.49,-2189.32 1539.49,-2211.32 1770.51,-2211.32 1770.51,-2189.32 1539.49,-2189.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1539.49,-2189.32 1539.49,-2211.32 1770.51,-2211.32 1770.51,-2189.32 1539.49,-2189.32"/>
<polygon fill="#143826" stroke="none" points="1540.49,-2190.32 1540.49,-2210.32 1579.07,-2210.32 1579.07,-2190.32 1540.49,-2190.32"/>
<text xml:space="preserve" text-anchor="start" x="1547.53" y="-2198.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1583.07" y="-2198.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/shipping</text>
<text xml:space="preserve" text-anchor="start" x="1656.12" y="-2197.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create package for a shipme…</text>
<polygon fill="#2a3242" stroke="none" points="1539.49,-2167.32 1539.49,-2189.32 1770.51,-2189.32 1770.51,-2167.32 1539.49,-2167.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1539.49,-2167.32 1539.49,-2189.32 1770.51,-2189.32 1770.51,-2167.32 1539.49,-2167.32"/>
<polygon fill="#301c44" stroke="none" points="1540.49,-2168.32 1540.49,-2188.32 1593.89,-2188.32 1593.89,-2168.32 1540.49,-2168.32"/>
<text xml:space="preserve" text-anchor="start" x="1551.69" y="-2176.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="1597.89" y="-2176.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1656.12" y="-2175.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update shipment state or me…</text>
<polygon fill="#272e3d" stroke="none" points="1539.49,-2145.32 1539.49,-2167.32 1770.51,-2167.32 1770.51,-2145.32 1539.49,-2145.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1539.49,-2145.32 1539.49,-2167.32 1770.51,-2167.32 1770.51,-2145.32 1539.49,-2145.32"/>
<polygon fill="#3a181e" stroke="none" points="1540.49,-2146.32 1540.49,-2166.32 1613.41,-2166.32 1613.41,-2146.32 1540.49,-2146.32"/>
<text xml:space="preserve" text-anchor="start" x="1559.2" y="-2154.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="1617.41" y="-2154.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1707.7" y="-2153.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete shipment</text>
<polygon fill="#2a3242" stroke="none" points="1539.49,-2123.32 1539.49,-2145.32 1770.51,-2145.32 1770.51,-2123.32 1539.49,-2123.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1539.49,-2123.32 1539.49,-2145.32 1770.51,-2145.32 1770.51,-2123.32 1539.49,-2123.32"/>
<polygon fill="#3a181e" stroke="none" points="1540.49,-2124.32 1540.49,-2144.32 1582,-2144.32 1582,-2124.32 1540.49,-2124.32"/>
<text xml:space="preserve" text-anchor="start" x="1543.49" y="-2132.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="1586" y="-2132.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/file/{fileId}</text>
<text xml:space="preserve" text-anchor="start" x="1664.57" y="-2131.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete shipment file attach…</text>
</g>
<!-- Order&#45;&gt;Shipment -->
<g id="edge3" class="edge">
<title>Order:e&#45;&gt;Shipment:n</title>
<g id="a_edge3"><a xlink:title="Order → Shipment (shipments)">
<path fill="none" stroke="#5aa7ff" stroke-width="1.4" d="M1096.17,-1790.52C1220.39,-1790.52 1063.26,-1981.79 1156.98,-2063.32 1179.94,-2083.29 1399.69,-2082.62 1430,-2085.32 1507.51,-2092.22 1726.22,-2061.68 1778.51,-2119.32 1848.68,-2196.67 1852.06,-2280.17 1778.51,-2354.32 1761.44,-2371.52 1678.25,-2380.52 1658.99,-2363.51"/>
<polygon fill="#5aa7ff" stroke="#5aa7ff" stroke-width="1.4" points="1661.19,-2362.44 1655.93,-2357.22 1656.79,-2364.59 1661.19,-2362.44"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1182.49" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#5aa7ff"> &#160;shipments &#160;</text>
</g>
<!-- Shipping -->
<g id="node20" class="node">
<title>Shipping</title>
<polygon fill="#33415c" stroke="none" points="1165.62,-2266.32 1165.62,-2301.32 1388.38,-2301.32 1388.38,-2266.32 1165.62,-2266.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1165.62,-2266.32 1165.62,-2301.32 1388.38,-2301.32 1388.38,-2266.32 1165.62,-2266.32"/>
<polygon fill="#33415c" stroke="none" points="1167.62,-2295.32 1167.62,-2299.32 1240.54,-2299.32 1240.54,-2295.32 1167.62,-2295.32"/>
<polygon fill="#33415c" stroke="none" points="1240.54,-2295.32 1240.54,-2299.32 1313.46,-2299.32 1313.46,-2295.32 1240.54,-2295.32"/>
<polygon fill="#33415c" stroke="none" points="1313.46,-2295.32 1313.46,-2299.32 1386.38,-2299.32 1386.38,-2295.32 1313.46,-2295.32"/>
<text xml:space="preserve" text-anchor="start" x="1251.34" y="-2282.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Shipping</text>
<text xml:space="preserve" text-anchor="start" x="1258.99" y="-2273.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/shipping</text>
<polygon fill="#2a3242" stroke="none" points="1165.62,-2244.32 1165.62,-2266.32 1388.38,-2266.32 1388.38,-2244.32 1165.62,-2244.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1165.62,-2244.32 1165.62,-2266.32 1388.38,-2266.32 1388.38,-2244.32 1165.62,-2244.32"/>
<polygon fill="#182b40" stroke="none" points="1166.62,-2245.32 1166.62,-2265.32 1207.29,-2265.32 1207.29,-2245.32 1166.62,-2245.32"/>
<text xml:space="preserve" text-anchor="start" x="1177.7" y="-2253.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1211.29" y="-2253.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/package</text>
<text xml:space="preserve" text-anchor="start" x="1286.87" y="-2252.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List packages of a shipping</text>
<polygon fill="#272e3d" stroke="none" points="1165.62,-2222.32 1165.62,-2244.32 1388.38,-2244.32 1388.38,-2222.32 1165.62,-2222.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1165.62,-2222.32 1165.62,-2244.32 1388.38,-2244.32 1388.38,-2222.32 1165.62,-2222.32"/>
<polygon fill="#143826" stroke="none" points="1166.62,-2223.32 1166.62,-2243.32 1204.62,-2243.32 1204.62,-2223.32 1166.62,-2223.32"/>
<text xml:space="preserve" text-anchor="start" x="1173.37" y="-2231.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1208.62" y="-2231.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/package</text>
<text xml:space="preserve" text-anchor="start" x="1278.87" y="-2230.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create package for a shippi…</text>
<polygon fill="#2a3242" stroke="none" points="1165.62,-2200.32 1165.62,-2222.32 1388.38,-2222.32 1388.38,-2200.32 1165.62,-2200.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1165.62,-2200.32 1165.62,-2222.32 1388.38,-2222.32 1388.38,-2200.32 1165.62,-2200.32"/>
<polygon fill="#301c44" stroke="none" points="1166.62,-2201.32 1166.62,-2221.32 1234.45,-2221.32 1234.45,-2201.32 1166.62,-2201.32"/>
<text xml:space="preserve" text-anchor="start" x="1185.04" y="-2209.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="1238.45" y="-2209.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1325.56" y="-2208.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update shipping</text>
<polygon fill="#272e3d" stroke="none" points="1165.62,-2178.32 1165.62,-2200.32 1388.38,-2200.32 1388.38,-2178.32 1165.62,-2178.32"/>
<polygon fill="none" stroke="#3f4c5f" points="1165.62,-2178.32 1165.62,-2200.32 1388.38,-2200.32 1388.38,-2178.32 1165.62,-2178.32"/>
<polygon fill="#3a181e" stroke="none" points="1166.62,-2179.32 1166.62,-2199.32 1237.68,-2199.32 1237.68,-2179.32 1166.62,-2179.32"/>
<text xml:space="preserve" text-anchor="start" x="1184.4" y="-2187.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="1241.68" y="-2187.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1328.23" y="-2186.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete shipping</text>
</g>
<!-- Order&#45;&gt;Shipping -->
<g id="edge5" class="edge">
<title>Order:e&#45;&gt;Shipping:n</title>
<g id="a_edge5"><a xlink:title="Order → Shipping (shippings)">
<path fill="none" stroke="#c79bff" stroke-width="1.4" d="M1096.17,-1790.52C1225.93,-1790.52 1195.61,-1926.13 1225,-2052.52 1239.01,-2112.77 1174.29,-2114.74 1157.62,-2174.32 1142.66,-2227.82 1118.76,-2259.61 1157.62,-2299.32 1169.47,-2311.42 1193.14,-2318.24 1201.27,-2308.9"/>
<polygon fill="#c79bff" stroke="#c79bff" stroke-width="1.4" points="1203.57,-2309.75 1203.42,-2302.33 1198.91,-2308.22 1203.57,-2309.75"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1250.75" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#c79bff"> &#160;shippings &#160;</text>
</g>
<!-- Payment -->
<g id="node26" class="node">
<title>Payment</title>
<polygon fill="#33415c" stroke="none" points="9349.51,-1702.52 9349.51,-1737.52 9484.49,-1737.52 9484.49,-1702.52 9349.51,-1702.52"/>
<polygon fill="none" stroke="#3f4c5f" points="9349.51,-1702.52 9349.51,-1737.52 9484.49,-1737.52 9484.49,-1702.52 9349.51,-1702.52"/>
<polygon fill="#33415c" stroke="none" points="9351.51,-1731.52 9351.51,-1735.52 9482.49,-1735.52 9482.49,-1731.52 9351.51,-1731.52"/>
<text xml:space="preserve" text-anchor="start" x="9391.99" y="-1718.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Payment</text>
<text xml:space="preserve" text-anchor="start" x="9398.49" y="-1709.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/payment</text>
<polygon fill="#2a3242" stroke="none" points="9349.51,-1680.52 9349.51,-1702.52 9484.49,-1702.52 9484.49,-1680.52 9349.51,-1680.52"/>
<polygon fill="none" stroke="#3f4c5f" points="9349.51,-1680.52 9349.51,-1702.52 9484.49,-1702.52 9484.49,-1680.52 9349.51,-1680.52"/>
<polygon fill="#3a181e" stroke="none" points="9350.51,-1681.52 9350.51,-1701.52 9392.01,-1701.52 9392.01,-1681.52 9350.51,-1681.52"/>
<text xml:space="preserve" text-anchor="start" x="9353.51" y="-1689.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="9396.01" y="-1689.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9423.46" y="-1688.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete payment</text>
</g>
<!-- Order&#45;&gt;Payment -->
<g id="edge4" class="edge">
<title>Order:e&#45;&gt;Payment:n</title>
<g id="a_edge4"><a xlink:title="Order → Payment (payments)">
<path fill="none" stroke="#f5c15c" stroke-width="1.4" d="M1096.17,-1790.52C1207.88,-1790.52 1126.11,-1951.91 1223,-2007.5 1469.24,-2148.79 9247.19,-2001.71 9414.27,-1744.92"/>
<polygon fill="#f5c15c" stroke="#f5c15c" stroke-width="1.4" points="9416.51,-1745.95 9416.35,-1738.53 9411.85,-1744.43 9416.51,-1745.95"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2553" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#f5c15c"> &#160;payments &#160;</text>
</g>
<!-- Shipment&#45;&gt;Article -->
<g id="edge10" class="edge">
<title>Shipment:e&#45;&gt;Article:n</title>
<g id="a_edge10"><a xlink:title="Shipment → Article (lines.sku)">
<path fill="none" stroke="#58d18a" stroke-width="1.4" d="M1771.51,-2288.32C2097.05,-2288.32 2145.42,-2114.63 2464.98,-2052.52 2502.54,-2045.22 3117.83,-2051.29 3187.41,-2017.96"/>
<polygon fill="#58d18a" stroke="#58d18a" stroke-width="1.4" points="3189.12,-2019.72 3192.31,-2013.02 3185.64,-2016.27 3189.12,-2019.72"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2487.49" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#58d18a"> &#160;lines.sku &#160;</text>
</g>
<!-- Shipment&#45;&gt;Order -->
<g id="edge9" class="edge">
<title>Shipment:w&#45;&gt;Order:n</title>
<g id="a_edge9"><a xlink:title="Shipment → Order (manifestId)">
<path fill="none" stroke="#8f95ff" stroke-width="1.4" d="M1538.49,-2288.32C1436.19,-2288.32 1516.06,-2140.63 1430,-2085.32 1364.16,-2043 1146.52,-2102.01 1078.48,-2063.32 995.18,-2015.95 955.47,-1980.7 953.07,-1888.61"/>
<polygon fill="#8f95ff" stroke="#8f95ff" stroke-width="1.4" points="955.52,-1888.6 952.98,-1881.64 950.62,-1888.67 955.52,-1888.6"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1104.24" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8f95ff"> &#160;manifestId &#160;</text>
</g>
<!-- Shipment&#45;&gt;Shipping -->
<g id="edge11" class="edge">
<title>Shipment:w&#45;&gt;Shipping:n</title>
<g id="a_edge11"><a xlink:title="Shipment → Shipping (shippings)">
<path fill="none" stroke="#ff8f66" stroke-width="1.4" d="M1538.49,-2244.32C1512.02,-2244.32 1512.28,-2265.41 1487.95,-2275.82 1449.32,-2292.34 1438,-2293.6 1396.38,-2299.32 1382.15,-2301.27 1365.25,-2310.97 1356.27,-2309.77"/>
<polygon fill="#ff8f66" stroke="#ff8f66" stroke-width="1.4" points="1357.04,-2306.52 1351.1,-2302.08 1352.97,-2309.25 1357.04,-2306.52"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1463.93" y="-2295.04" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff8f66"> &#160;shippings &#160;</text>
</g>
<!-- Package -->
<g id="node21" class="node">
<title>Package</title>
<polygon fill="#33415c" stroke="none" points="1264.73,-1702.52 1264.73,-1737.52 1399.27,-1737.52 1399.27,-1702.52 1264.73,-1702.52"/>
<polygon fill="none" stroke="#3f4c5f" points="1264.73,-1702.52 1264.73,-1737.52 1399.27,-1737.52 1399.27,-1702.52 1264.73,-1702.52"/>
<polygon fill="#33415c" stroke="none" points="1266.73,-1731.52 1266.73,-1735.52 1397.27,-1735.52 1397.27,-1731.52 1266.73,-1731.52"/>
<text xml:space="preserve" text-anchor="start" x="1307.65" y="-1718.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Package</text>
<text xml:space="preserve" text-anchor="start" x="1313.74" y="-1709.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/package</text>
<polygon fill="#2a3242" stroke="none" points="1264.73,-1680.52 1264.73,-1702.52 1399.27,-1702.52 1399.27,-1680.52 1264.73,-1680.52"/>
<polygon fill="none" stroke="#3f4c5f" points="1264.73,-1680.52 1264.73,-1702.52 1399.27,-1702.52 1399.27,-1680.52 1264.73,-1680.52"/>
<polygon fill="#3a181e" stroke="none" points="1265.73,-1681.52 1265.73,-1701.52 1307.23,-1701.52 1307.23,-1681.52 1265.73,-1681.52"/>
<text xml:space="preserve" text-anchor="start" x="1268.73" y="-1689.82" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="1311.23" y="-1689.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1338.68" y="-1688.32" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete package</text>
</g>
<!-- Shipping&#45;&gt;Package -->
<g id="edge12" class="edge">
<title>Shipping:e&#45;&gt;Package:n</title>
<g id="a_edge12"><a xlink:title="Shipping → Package (packages)">
<path fill="none" stroke="#4fc4e8" stroke-width="1.4" d="M1389.38,-2255.32C1425.38,-2255.32 1390.9,-2210.23 1388.38,-2174.32 1374.83,-1981.67 1333.32,-1934.17 1332.03,-1745.6"/>
<polygon fill="#4fc4e8" stroke="#4fc4e8" stroke-width="1.4" points="1334.48,-1745.63 1332.01,-1738.64 1329.58,-1745.64 1334.48,-1745.63"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1399.2" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#4fc4e8"> &#160;packages &#160;</text>
</g>
<!-- Package&#45;&gt;Entity -->
<g id="edge14" class="edge">
<title>Package:e&#45;&gt;Entity:n</title>
<g id="a_edge14"><a xlink:title="Package → Entity (addressId)">
<path fill="none" stroke="#ff6f6f" stroke-width="1.4" d="M1408.2,-1709.02C1679.84,-1709.02 1667.03,-1462.89 1928,-1387.52 1962.91,-1377.43 4518.42,-1391.32 4544,-1365.52 4663.71,-1244.79 4188.21,-1420.4 4171.46,-1262.52"/>
<polygon fill="#ff6f6f" stroke="#ff6f6f" stroke-width="1.4" points="4173.92,-1262.7 4171.12,-1255.83 4169.03,-1262.95 4173.92,-1262.7"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4574.35" y="-1357.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff6f6f"> &#160;addressId &#160;</text>
</g>
<!-- Package&#45;&gt;Shipping -->
<g id="edge13" class="edge">
<title>Package:w&#45;&gt;Shipping:n</title>
<g id="a_edge13"><a xlink:title="Package → Shipping (shippingId)">
<path fill="none" stroke="#a98cff" stroke-width="1.4" d="M1255.8,-1709.02C1082.57,-1709.02 1394.43,-1885.39 1440,-2052.52 1469.3,-2159.98 1481.7,-2227.71 1396.38,-2299.32 1378.44,-2314.37 1299.13,-2324.3 1280.79,-2308.17"/>
<polygon fill="#a98cff" stroke="#a98cff" stroke-width="1.4" points="1283.17,-2307.46 1277.92,-2302.22 1278.76,-2309.59 1283.17,-2307.46"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1467.68" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#a98cff"> &#160;shippingId &#160;</text>
</g>
<!-- Stock -->
<g id="node22" class="node">
<title>Stock</title>
<polygon fill="#33415c" stroke="none" points="2271.97,-2626.12 2271.97,-2661.12 2462.03,-2661.12 2462.03,-2626.12 2271.97,-2626.12"/>
<polygon fill="none" stroke="#3f4c5f" points="2271.97,-2626.12 2271.97,-2661.12 2462.03,-2661.12 2462.03,-2626.12 2271.97,-2626.12"/>
<polygon fill="#33415c" stroke="none" points="2273.97,-2655.12 2273.97,-2659.12 2460.03,-2659.12 2460.03,-2655.12 2273.97,-2655.12"/>
<text xml:space="preserve" text-anchor="start" x="2350.66" y="-2642.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Stock</text>
<text xml:space="preserve" text-anchor="start" x="2355.25" y="-2633.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/stock</text>
<polygon fill="#2a3242" stroke="none" points="2271.97,-2604.12 2271.97,-2626.12 2462.03,-2626.12 2462.03,-2604.12 2271.97,-2604.12"/>
<polygon fill="none" stroke="#3f4c5f" points="2271.97,-2604.12 2271.97,-2626.12 2462.03,-2626.12 2462.03,-2604.12 2271.97,-2604.12"/>
<polygon fill="#143826" stroke="none" points="2272.97,-2605.12 2272.97,-2625.12 2310.97,-2625.12 2310.97,-2605.12 2272.97,-2605.12"/>
<text xml:space="preserve" text-anchor="start" x="2279.72" y="-2613.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2314.97" y="-2613.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/accept</text>
<text xml:space="preserve" text-anchor="start" x="2357.43" y="-2611.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Accept delivery manifest it…</text>
<polygon fill="#272e3d" stroke="none" points="2271.97,-2582.12 2271.97,-2604.12 2462.03,-2604.12 2462.03,-2582.12 2271.97,-2582.12"/>
<polygon fill="none" stroke="#3f4c5f" points="2271.97,-2582.12 2271.97,-2604.12 2462.03,-2604.12 2462.03,-2582.12 2271.97,-2582.12"/>
<polygon fill="#143826" stroke="none" points="2272.97,-2583.12 2272.97,-2603.12 2319.13,-2603.12 2319.13,-2583.12 2272.97,-2583.12"/>
<text xml:space="preserve" text-anchor="start" x="2283.8" y="-2591.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2323.13" y="-2591.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/adjust</text>
<text xml:space="preserve" text-anchor="start" x="2379.66" y="-2589.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Adjust stock manually</text>
<polygon fill="#2a3242" stroke="none" points="2271.97,-2560.12 2271.97,-2582.12 2462.03,-2582.12 2462.03,-2560.12 2271.97,-2560.12"/>
<polygon fill="none" stroke="#3f4c5f" points="2271.97,-2560.12 2271.97,-2582.12 2462.03,-2582.12 2462.03,-2560.12 2271.97,-2560.12"/>
<polygon fill="#143826" stroke="none" points="2272.97,-2561.12 2272.97,-2581.12 2312.16,-2581.12 2312.16,-2561.12 2272.97,-2561.12"/>
<text xml:space="preserve" text-anchor="start" x="2280.31" y="-2569.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2316.16" y="-2569.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/ship</text>
<text xml:space="preserve" text-anchor="start" x="2349.87" y="-2567.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Ship shipment manifest item…</text>
</g>
<!-- Stock&#45;&gt;Article -->
<g id="edge21" class="edge">
<title>Stock:e&#45;&gt;Article:n</title>
<g id="a_edge21"><a xlink:title="Stock → Article (sku)">
<path fill="none" stroke="#ffb25a" stroke-width="1.4" d="M2463.03,-2615.12C3056.86,-2615.12 3201.34,-2537.87 3793,-2487.12 3825.42,-2484.34 4062.87,-2488.97 4085,-2465.12 4088.26,-2461.6 4088.31,-2457.8 4085,-2454.32 4072.81,-2441.5 3940.28,-2456.74 3925.99,-2446.32 3787.5,-2345.25 3929.84,-2184.51 3790,-2085.32 3747.44,-2055.13 2887.46,-2100.64 2851,-2063.32 2796.08,-2007.09 3183.2,-2086.62 3213.52,-2020.34"/>
<polygon fill="#ffb25a" stroke="#ffb25a" stroke-width="1.4" points="3215.9,-2020.95 3214.96,-2013.59 3211.11,-2019.93 3215.9,-2020.95"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3938" y="-2237.12" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ffb25a"> &#160;sku &#160;</text>
</g>
<!-- Stock&#45;&gt;Ledger -->
<g id="edge23" class="edge">
<title>Stock:e&#45;&gt;Ledger:n</title>
<g id="a_edge23"><a xlink:title="Stock → Ledger (ledger)">
<path fill="none" stroke="#66b3ff" stroke-width="1.4" d="M2463.03,-2615.12C2961.05,-2615.12 3075.68,-2495.64 3571.98,-2454.32 3611.96,-2450.99 3894.7,-2458.29 3933,-2446.32 4042.4,-2412.12 4148.27,-2417.71 4153.78,-2309.37"/>
<polygon fill="#66b3ff" stroke="#66b3ff" stroke-width="1.4" points="4156.22,-2309.49 4153.95,-2302.44 4151.32,-2309.37 4156.22,-2309.49"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3589.49" y="-2457.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#66b3ff"> &#160;ledger &#160;</text>
</g>
<!-- Warehouse -->
<g id="node24" class="node">
<title>Warehouse</title>
<polygon fill="#33415c" stroke="none" points="3835.03,-2670.12 3835.03,-2705.12 4006.97,-2705.12 4006.97,-2670.12 3835.03,-2670.12"/>
<polygon fill="none" stroke="#3f4c5f" points="3835.03,-2670.12 3835.03,-2705.12 4006.97,-2705.12 4006.97,-2670.12 3835.03,-2670.12"/>
<polygon fill="#33415c" stroke="none" points="3837.03,-2699.12 3837.03,-2703.12 3921,-2703.12 3921,-2699.12 3837.03,-2699.12"/>
<polygon fill="#33415c" stroke="none" points="3921,-2699.12 3921,-2703.12 4004.97,-2703.12 4004.97,-2699.12 3921,-2699.12"/>
<text xml:space="preserve" text-anchor="start" x="3888.66" y="-2686.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Warehouse</text>
<text xml:space="preserve" text-anchor="start" x="3897.74" y="-2677.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/warehouse</text>
<polygon fill="#2a3242" stroke="none" points="3835.03,-2648.12 3835.03,-2670.12 4006.97,-2670.12 4006.97,-2648.12 3835.03,-2648.12"/>
<polygon fill="none" stroke="#3f4c5f" points="3835.03,-2648.12 3835.03,-2670.12 4006.97,-2670.12 4006.97,-2648.12 3835.03,-2648.12"/>
<polygon fill="#182b40" stroke="none" points="3836.03,-2649.12 3836.03,-2669.12 3892.48,-2669.12 3892.48,-2649.12 3836.03,-2649.12"/>
<text xml:space="preserve" text-anchor="start" x="3855" y="-2657.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3896.48" y="-2657.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3944.16" y="-2655.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List warehouses</text>
<polygon fill="#272e3d" stroke="none" points="3835.03,-2626.12 3835.03,-2648.12 4006.97,-2648.12 4006.97,-2626.12 3835.03,-2626.12"/>
<polygon fill="none" stroke="#3f4c5f" points="3835.03,-2626.12 3835.03,-2648.12 4006.97,-2648.12 4006.97,-2626.12 3835.03,-2626.12"/>
<polygon fill="#143826" stroke="none" points="3836.03,-2627.12 3836.03,-2647.12 3889.96,-2647.12 3889.96,-2627.12 3836.03,-2627.12"/>
<text xml:space="preserve" text-anchor="start" x="3850.74" y="-2635.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3893.96" y="-2635.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3936.6" y="-2633.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create warehouse</text>
<polygon fill="#2a3242" stroke="none" points="3835.03,-2604.12 3835.03,-2626.12 4006.97,-2626.12 4006.97,-2604.12 3835.03,-2604.12"/>
<polygon fill="none" stroke="#3f4c5f" points="3835.03,-2604.12 3835.03,-2626.12 4006.97,-2626.12 4006.97,-2604.12 3835.03,-2604.12"/>
<polygon fill="#182b40" stroke="none" points="3836.03,-2605.12 3836.03,-2625.12 3881.14,-2625.12 3881.14,-2605.12 3836.03,-2605.12"/>
<text xml:space="preserve" text-anchor="start" x="3849.34" y="-2613.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3885.14" y="-2613.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3926.82" y="-2611.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get warehouse by ID</text>
<polygon fill="#272e3d" stroke="none" points="3835.03,-2582.12 3835.03,-2604.12 4006.97,-2604.12 4006.97,-2582.12 3835.03,-2582.12"/>
<polygon fill="none" stroke="#3f4c5f" points="3835.03,-2582.12 3835.03,-2604.12 4006.97,-2604.12 4006.97,-2582.12 3835.03,-2582.12"/>
<polygon fill="#3b2c12" stroke="none" points="3836.03,-2583.12 3836.03,-2603.12 3883.81,-2603.12 3883.81,-2583.12 3836.03,-2583.12"/>
<text xml:space="preserve" text-anchor="start" x="3850.92" y="-2591.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3887.81" y="-2591.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3934.82" y="-2589.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update warehouse</text>
<polygon fill="#2a3242" stroke="none" points="3835.03,-2560.12 3835.03,-2582.12 4006.97,-2582.12 4006.97,-2560.12 3835.03,-2560.12"/>
<polygon fill="none" stroke="#3f4c5f" points="3835.03,-2560.12 3835.03,-2582.12 4006.97,-2582.12 4006.97,-2560.12 3835.03,-2560.12"/>
<polygon fill="#3b2c12" stroke="none" points="3836.03,-2561.12 3836.03,-2581.12 3878.48,-2581.12 3878.48,-2561.12 3836.03,-2561.12"/>
<text xml:space="preserve" text-anchor="start" x="3848.25" y="-2569.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3882.48" y="-2569.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="3927.71" y="-2567.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder warehouses</text>
<polygon fill="#272e3d" stroke="none" points="3835.03,-2538.12 3835.03,-2560.12 4006.97,-2560.12 4006.97,-2538.12 3835.03,-2538.12"/>
<polygon fill="none" stroke="#3f4c5f" points="3835.03,-2538.12 3835.03,-2560.12 4006.97,-2560.12 4006.97,-2538.12 3835.03,-2538.12"/>
<polygon fill="#301c44" stroke="none" points="3836.03,-2539.12 3836.03,-2559.12 3874.03,-2559.12 3874.03,-2539.12 3836.03,-2539.12"/>
<text xml:space="preserve" text-anchor="start" x="3839.53" y="-2547.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="3878.03" y="-2547.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3905.48" y="-2545.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update warehouse (partial)</text>
<polygon fill="#2a3242" stroke="none" points="3835.03,-2516.12 3835.03,-2538.12 4006.97,-2538.12 4006.97,-2516.12 3835.03,-2516.12"/>
<polygon fill="none" stroke="#3f4c5f" points="3835.03,-2516.12 3835.03,-2538.12 4006.97,-2538.12 4006.97,-2516.12 3835.03,-2516.12"/>
<polygon fill="#3a181e" stroke="none" points="3836.03,-2517.12 3836.03,-2537.12 3887.03,-2537.12 3887.03,-2517.12 3836.03,-2517.12"/>
<text xml:space="preserve" text-anchor="start" x="3843.78" y="-2525.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3891.03" y="-2525.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3937.49" y="-2523.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete warehouse</text>
</g>
<!-- Stock&#45;&gt;Warehouse -->
<g id="edge22" class="edge">
<title>Stock:e&#45;&gt;Warehouse:n</title>
<g id="a_edge22"><a xlink:title="Stock → Warehouse (warehouseId)">
<path fill="none" stroke="#56d68a" stroke-width="1.4" d="M2463.03,-2615.12C2616.67,-2615.12 3815.82,-2849.39 3876.62,-2715.35"/>
<polygon fill="#56d68a" stroke="#56d68a" stroke-width="1.4" points="3879.51,-2713.55 3878.57,-2706.19 3874.72,-2712.52 3879.51,-2713.55"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3148.53" y="-2711.03" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#56d68a"> &#160;warehouseId &#160;</text>
</g>
<!-- Ledger&#45;&gt;Article -->
<g id="edge24" class="edge">
<title>Ledger:w&#45;&gt;Article:n</title>
<g id="a_edge24"><a xlink:title="Ledger → Article (sku)">
<path fill="none" stroke="#c79bff" stroke-width="1.4" d="M3990.61,-2255.32C3910.84,-2255.32 3995.02,-2135.49 3933,-2085.32 3880.46,-2042.81 3350.36,-2078.74 3304.9,-2020.02"/>
<polygon fill="#c79bff" stroke="#c79bff" stroke-width="1.4" points="3307.23,-2019.24 3302.53,-2013.51 3302.63,-2020.92 3307.23,-2019.24"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3784.46" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#c79bff"> &#160;sku &#160;</text>
</g>
<!-- Ledger&#45;&gt;Warehouse -->
<g id="edge25" class="edge">
<title>Ledger:w&#45;&gt;Warehouse:n</title>
<g id="a_edge25"><a xlink:title="Ledger → Warehouse (warehouseId)">
<path fill="none" stroke="#ff6b6b" stroke-width="1.4" d="M3990.61,-2255.32C3901.94,-2255.32 4003.47,-2392.5 3933,-2446.32 3919.73,-2456.45 3644.12,-2442.35 3632.46,-2454.32 3512.52,-2577.5 3901.05,-2383.34 4014.97,-2512.12 4071.22,-2575.7 4074.42,-2642.52 4014.97,-2703.12 4001.32,-2717.04 3973.7,-2724.63 3965.4,-2712.78"/>
<polygon fill="#ff6b6b" stroke="#ff6b6b" stroke-width="1.4" points="3967.79,-2712.25 3963.55,-2706.16 3963.07,-2713.56 3967.79,-2712.25"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3663.23" y="-2457.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff6b6b"> &#160;warehouseId &#160;</text>
</g>
<!-- Account -->
<g id="node25" class="node">
<title>Account</title>
<polygon fill="#33415c" stroke="none" points="9399.84,-1098.72 9399.84,-1133.72 9532.16,-1133.72 9532.16,-1098.72 9399.84,-1098.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9399.84,-1098.72 9399.84,-1133.72 9532.16,-1133.72 9532.16,-1098.72 9399.84,-1098.72"/>
<polygon fill="#33415c" stroke="none" points="9401.84,-1127.72 9401.84,-1131.72 9530.16,-1131.72 9530.16,-1127.72 9401.84,-1127.72"/>
<text xml:space="preserve" text-anchor="start" x="9442" y="-1114.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Account</text>
<text xml:space="preserve" text-anchor="start" x="9448.99" y="-1105.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/account</text>
<polygon fill="#2a3242" stroke="none" points="9399.84,-1076.72 9399.84,-1098.72 9532.16,-1098.72 9532.16,-1076.72 9399.84,-1076.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9399.84,-1076.72 9399.84,-1098.72 9532.16,-1098.72 9532.16,-1076.72 9399.84,-1076.72"/>
<polygon fill="#182b40" stroke="none" points="9400.84,-1077.72 9400.84,-1097.72 9447.79,-1097.72 9447.79,-1077.72 9400.84,-1077.72"/>
<text xml:space="preserve" text-anchor="start" x="9415.06" y="-1086.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9451.79" y="-1085.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9480.47" y="-1084.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List accounts</text>
<polygon fill="#272e3d" stroke="none" points="9399.84,-1054.72 9399.84,-1076.72 9532.16,-1076.72 9532.16,-1054.72 9399.84,-1054.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9399.84,-1054.72 9399.84,-1076.72 9532.16,-1076.72 9532.16,-1054.72 9399.84,-1054.72"/>
<polygon fill="#143826" stroke="none" points="9400.84,-1055.72 9400.84,-1075.72 9445.27,-1075.72 9445.27,-1055.72 9400.84,-1055.72"/>
<text xml:space="preserve" text-anchor="start" x="9410.8" y="-1064.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9449.27" y="-1063.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9472.91" y="-1062.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create account</text>
<polygon fill="#2a3242" stroke="none" points="9399.84,-1032.72 9399.84,-1054.72 9532.16,-1054.72 9532.16,-1032.72 9399.84,-1032.72"/>
<polygon fill="none" stroke="#3f4c5f" points="9399.84,-1032.72 9399.84,-1054.72 9532.16,-1054.72 9532.16,-1032.72 9399.84,-1032.72"/>
<polygon fill="#3a181e" stroke="none" points="9400.84,-1033.72 9400.84,-1053.72 9442.34,-1053.72 9442.34,-1033.72 9400.84,-1033.72"/>
<text xml:space="preserve" text-anchor="start" x="9403.84" y="-1042.02" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="9446.34" y="-1041.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9473.79" y="-1040.52" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete account</text>
</g>
<!-- Account&#45;&gt;Company -->
<g id="edge45" class="edge">
<title>Account:e&#45;&gt;Company:n</title>
<g id="a_edge45"><a xlink:title="Account → Company (companyId)">
<path fill="none" stroke="#ffb25a" stroke-width="1.4" d="M9533.16,-1087.72C9642.3,-1087.72 9558.22,-930.79 9650,-871.72 9710.57,-832.73 10226.08,-843.52 10297,-830.92 10413.41,-810.22 10550.2,-867.21 10557.08,-757.81"/>
<polygon fill="#ffb25a" stroke="#ffb25a" stroke-width="1.4" points="10559.52,-758.11 10557.28,-751.03 10554.62,-757.96 10559.52,-758.11"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="10111.03" y="-841.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ffb25a"> &#160;companyId &#160;</text>
</g>
<!-- Payment&#45;&gt;Order -->
<g id="edge44" class="edge">
<title>Payment:w&#45;&gt;Order:n</title>
<g id="a_edge44"><a xlink:title="Payment → Order (manifestId)">
<path fill="none" stroke="#ff5f9e" stroke-width="1.4" d="M9340.58,-1709.02C6868.76,-1709.02 6257.93,-1941.15 3787,-2007.5 1242.34,-2075.83 1069.33,-2106.27 1065.21,-1888.38"/>
<polygon fill="#ff5f9e" stroke="#ff5f9e" stroke-width="1.4" points="1067.66,-1888.61 1065.15,-1881.64 1062.76,-1888.66 1067.66,-1888.61"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2553" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff5f9e"> &#160;manifestId &#160;</text>
</g>
<!-- Payment&#45;&gt;Account -->
<g id="edge43" class="edge">
<title>Payment:e&#45;&gt;Account:n</title>
<g id="a_edge43"><a xlink:title="Payment → Account (accountId)">
<path fill="none" stroke="#56c8c8" stroke-width="1.4" d="M9493.42,-1709.02C9555.15,-1709.02 9472.58,-1234.13 9466.37,-1141.66"/>
<polygon fill="#56c8c8" stroke="#56c8c8" stroke-width="1.4" points="9468.82,-1141.73 9466.09,-1134.83 9463.92,-1141.93 9468.82,-1141.73"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="9518.63" y="-1357.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#56c8c8"> &#160;accountId &#160;</text>
</g>
<!-- Serper -->
<g id="node28" class="node">
<title>Serper</title>
<polygon fill="#33415c" stroke="none" points="9113.46,-639.92 9113.46,-670.92 9316.54,-670.92 9316.54,-639.92 9113.46,-639.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9113.46,-639.92 9113.46,-670.92 9316.54,-670.92 9316.54,-639.92 9113.46,-639.92"/>
<text xml:space="preserve" text-anchor="start" x="9195.99" y="-656.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Serper</text>
<text xml:space="preserve" text-anchor="start" x="9200.99" y="-646.82" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/serper</text>
<polygon fill="#2a3242" stroke="none" points="9113.46,-617.92 9113.46,-639.92 9316.54,-639.92 9316.54,-617.92 9113.46,-617.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9113.46,-617.92 9113.46,-639.92 9316.54,-639.92 9316.54,-617.92 9113.46,-617.92"/>
<polygon fill="#143826" stroke="none" points="9114.46,-618.92 9114.46,-638.92 9154.33,-638.92 9154.33,-618.92 9114.46,-618.92"/>
<text xml:space="preserve" text-anchor="start" x="9122.14" y="-627.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9158.33" y="-626.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/image</text>
<text xml:space="preserve" text-anchor="start" x="9201.73" y="-625.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Crawl image from URL, crop …</text>
<polygon fill="#272e3d" stroke="none" points="9113.46,-595.92 9113.46,-617.92 9316.54,-617.92 9316.54,-595.92 9113.46,-595.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9113.46,-595.92 9113.46,-617.92 9316.54,-617.92 9316.54,-595.92 9113.46,-595.92"/>
<polygon fill="#143826" stroke="none" points="9114.46,-596.92 9114.46,-616.92 9152.46,-616.92 9152.46,-596.92 9114.46,-596.92"/>
<text xml:space="preserve" text-anchor="start" x="9121.21" y="-605.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9156.46" y="-604.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/images</text>
<text xml:space="preserve" text-anchor="start" x="9201.7" y="-603.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Search images via Serper.de…</text>
</g>
<!-- Vfs -->
<g id="node29" class="node">
<title>Vfs</title>
<polygon fill="#33415c" stroke="none" points="9400.85,-725.92 9400.85,-760.92 9637.15,-760.92 9637.15,-725.92 9400.85,-725.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-725.92 9400.85,-760.92 9637.15,-760.92 9637.15,-725.92 9400.85,-725.92"/>
<polygon fill="#33415c" stroke="none" points="9402.85,-754.92 9402.85,-758.92 9635.15,-758.92 9635.15,-754.92 9402.85,-754.92"/>
<text xml:space="preserve" text-anchor="start" x="9509.66" y="-742.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Vfs</text>
<text xml:space="preserve" text-anchor="start" x="9512" y="-732.82" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/vfs</text>
<polygon fill="#2a3242" stroke="none" points="9400.85,-703.92 9400.85,-725.92 9637.15,-725.92 9637.15,-703.92 9400.85,-703.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-703.92 9400.85,-725.92 9637.15,-725.92 9637.15,-703.92 9400.85,-703.92"/>
<polygon fill="#182b40" stroke="none" points="9401.85,-704.92 9401.85,-724.92 9469.54,-724.92 9469.54,-704.92 9401.85,-704.92"/>
<text xml:space="preserve" text-anchor="start" x="9426.44" y="-713.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9473.54" y="-712.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9543.69" y="-711.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List virtual filesystem fil…</text>
<polygon fill="#272e3d" stroke="none" points="9400.85,-681.92 9400.85,-703.92 9637.15,-703.92 9637.15,-681.92 9400.85,-681.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-681.92 9400.85,-703.92 9637.15,-703.92 9637.15,-681.92 9400.85,-681.92"/>
<polygon fill="#182b40" stroke="none" points="9401.85,-682.92 9401.85,-702.92 9456.83,-702.92 9456.83,-682.92 9401.85,-682.92"/>
<text xml:space="preserve" text-anchor="start" x="9420.09" y="-691.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9460.83" y="-690.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{*path}</text>
<text xml:space="preserve" text-anchor="start" x="9538.35" y="-689.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get a virtual filesystem fi…</text>
<polygon fill="#2a3242" stroke="none" points="9400.85,-659.92 9400.85,-681.92 9637.15,-681.92 9637.15,-659.92 9400.85,-659.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-659.92 9400.85,-681.92 9637.15,-681.92 9637.15,-659.92 9400.85,-659.92"/>
<polygon fill="#143826" stroke="none" points="9401.85,-660.92 9401.85,-680.92 9455.79,-680.92 9455.79,-660.92 9401.85,-660.92"/>
<text xml:space="preserve" text-anchor="start" x="9416.57" y="-669.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9459.79" y="-668.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{*path}</text>
<text xml:space="preserve" text-anchor="start" x="9535.22" y="-667.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Execute a virtual filesyste…</text>
<polygon fill="#272e3d" stroke="none" points="9400.85,-637.92 9400.85,-659.92 9637.15,-659.92 9637.15,-637.92 9400.85,-637.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-637.92 9400.85,-659.92 9637.15,-659.92 9637.15,-637.92 9400.85,-637.92"/>
<polygon fill="#143826" stroke="none" points="9401.85,-638.92 9401.85,-658.92 9439.85,-658.92 9439.85,-638.92 9401.85,-638.92"/>
<text xml:space="preserve" text-anchor="start" x="9408.6" y="-647.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9443.85" y="-646.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/applets/restore</text>
<text xml:space="preserve" text-anchor="start" x="9526.32" y="-645.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Restore system default appl…</text>
<polygon fill="#2a3242" stroke="none" points="9400.85,-615.92 9400.85,-637.92 9637.15,-637.92 9637.15,-615.92 9400.85,-615.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-615.92 9400.85,-637.92 9637.15,-637.92 9637.15,-615.92 9400.85,-615.92"/>
<polygon fill="#143826" stroke="none" points="9401.85,-616.92 9401.85,-636.92 9458.08,-636.92 9458.08,-616.92 9401.85,-616.92"/>
<text xml:space="preserve" text-anchor="start" x="9417.71" y="-625.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9462.08" y="-624.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/mkdir</text>
<text xml:space="preserve" text-anchor="start" x="9536.56" y="-623.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create directory in virtual…</text>
<polygon fill="#272e3d" stroke="none" points="9400.85,-593.92 9400.85,-615.92 9637.15,-615.92 9637.15,-593.92 9400.85,-593.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-593.92 9400.85,-615.92 9637.15,-615.92 9637.15,-593.92 9400.85,-593.92"/>
<polygon fill="#143826" stroke="none" points="9401.85,-594.92 9401.85,-614.92 9452.34,-614.92 9452.34,-594.92 9401.85,-594.92"/>
<text xml:space="preserve" text-anchor="start" x="9414.84" y="-603.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9456.34" y="-602.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/rename</text>
<text xml:space="preserve" text-anchor="start" x="9527.67" y="-601.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Rename or move a virtual fi…</text>
<polygon fill="#2a3242" stroke="none" points="9400.85,-571.92 9400.85,-593.92 9637.15,-593.92 9637.15,-571.92 9400.85,-571.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-571.92 9400.85,-593.92 9637.15,-593.92 9637.15,-571.92 9400.85,-571.92"/>
<polygon fill="#143826" stroke="none" points="9401.85,-572.92 9401.85,-592.92 9444.37,-592.92 9444.37,-572.92 9401.85,-572.92"/>
<text xml:space="preserve" text-anchor="start" x="9410.86" y="-581.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9448.37" y="-580.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/skills/restore</text>
<text xml:space="preserve" text-anchor="start" x="9529.89" y="-579.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Restore system default skil…</text>
<polygon fill="#272e3d" stroke="none" points="9400.85,-549.92 9400.85,-571.92 9637.15,-571.92 9637.15,-549.92 9400.85,-549.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-549.92 9400.85,-571.92 9637.15,-571.92 9637.15,-549.92 9400.85,-549.92"/>
<polygon fill="#143826" stroke="none" points="9401.85,-550.92 9401.85,-570.92 9458.46,-570.92 9458.46,-550.92 9401.85,-550.92"/>
<text xml:space="preserve" text-anchor="start" x="9417.9" y="-559.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9462.46" y="-558.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/upload</text>
<text xml:space="preserve" text-anchor="start" x="9543.22" y="-557.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Upload files to virtual fil…</text>
<polygon fill="#2a3242" stroke="none" points="9400.85,-527.92 9400.85,-549.92 9637.15,-549.92 9637.15,-527.92 9400.85,-527.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-527.92 9400.85,-549.92 9637.15,-549.92 9637.15,-527.92 9400.85,-527.92"/>
<polygon fill="#3b2c12" stroke="none" points="9401.85,-528.92 9401.85,-548.92 9455.2,-548.92 9455.2,-528.92 9401.85,-528.92"/>
<text xml:space="preserve" text-anchor="start" x="9419.52" y="-537.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="9459.2" y="-536.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{*path}</text>
<text xml:space="preserve" text-anchor="start" x="9533.45" y="-535.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create or overwrite a virtu…</text>
<polygon fill="#272e3d" stroke="none" points="9400.85,-505.92 9400.85,-527.92 9637.15,-527.92 9637.15,-505.92 9400.85,-505.92"/>
<polygon fill="none" stroke="#3f4c5f" points="9400.85,-505.92 9400.85,-527.92 9637.15,-527.92 9637.15,-505.92 9400.85,-505.92"/>
<polygon fill="#3a181e" stroke="none" points="9401.85,-506.92 9401.85,-526.92 9457.83,-526.92 9457.83,-506.92 9401.85,-506.92"/>
<text xml:space="preserve" text-anchor="start" x="9412.09" y="-515.22" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="9461.83" y="-514.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{*path}</text>
<text xml:space="preserve" text-anchor="start" x="9534.34" y="-513.72" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete a virtual filesystem…</text>
</g>
<!-- POSTerminal -->
<g id="node30" class="node">
<title>POSTerminal</title>
<polygon fill="#33415c" stroke="none" points="9404.03,-2681.12 9404.03,-2716.12 9689.97,-2716.12 9689.97,-2681.12 9404.03,-2681.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9404.03,-2681.12 9404.03,-2716.12 9689.97,-2716.12 9689.97,-2681.12 9404.03,-2681.12"/>
<polygon fill="#33415c" stroke="none" points="9406.03,-2710.12 9406.03,-2714.12 9687.97,-2714.12 9687.97,-2710.12 9406.03,-2710.12"/>
<text xml:space="preserve" text-anchor="start" x="9509.32" y="-2697.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">POSTerminal</text>
<text xml:space="preserve" text-anchor="start" x="9522.49" y="-2688.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/posterminal</text>
<polygon fill="#2a3242" stroke="none" points="9404.03,-2659.12 9404.03,-2681.12 9689.97,-2681.12 9689.97,-2659.12 9404.03,-2659.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9404.03,-2659.12 9404.03,-2681.12 9689.97,-2681.12 9689.97,-2659.12 9404.03,-2659.12"/>
<polygon fill="#182b40" stroke="none" points="9405.03,-2660.12 9405.03,-2680.12 9496.67,-2680.12 9496.67,-2660.12 9405.03,-2660.12"/>
<text xml:space="preserve" text-anchor="start" x="9441.6" y="-2668.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9500.67" y="-2668.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9618.72" y="-2666.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List POS terminals</text>
<polygon fill="#272e3d" stroke="none" points="9404.03,-2637.12 9404.03,-2659.12 9689.97,-2659.12 9689.97,-2637.12 9404.03,-2637.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9404.03,-2637.12 9404.03,-2659.12 9689.97,-2659.12 9689.97,-2637.12 9404.03,-2637.12"/>
<polygon fill="#3b2c12" stroke="none" points="9405.03,-2638.12 9405.03,-2658.12 9494.15,-2658.12 9494.15,-2638.12 9405.03,-2638.12"/>
<text xml:space="preserve" text-anchor="start" x="9440.59" y="-2646.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="9498.15" y="-2646.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9611.16" y="-2644.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create POS terminal</text>
<polygon fill="#2a3242" stroke="none" points="9404.03,-2615.12 9404.03,-2637.12 9689.97,-2637.12 9689.97,-2615.12 9404.03,-2615.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9404.03,-2615.12 9404.03,-2637.12 9689.97,-2637.12 9689.97,-2615.12 9404.03,-2615.12"/>
<polygon fill="#3b2c12" stroke="none" points="9405.03,-2616.12 9405.03,-2636.12 9474.91,-2636.12 9474.91,-2616.12 9405.03,-2616.12"/>
<text xml:space="preserve" text-anchor="start" x="9430.97" y="-2624.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="9478.91" y="-2624.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/all</text>
<text xml:space="preserve" text-anchor="start" x="9584.01" y="-2622.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Enable all categories on te…</text>
<polygon fill="#272e3d" stroke="none" points="9404.03,-2593.12 9404.03,-2615.12 9689.97,-2615.12 9689.97,-2593.12 9404.03,-2593.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9404.03,-2593.12 9404.03,-2615.12 9689.97,-2615.12 9689.97,-2593.12 9404.03,-2593.12"/>
<polygon fill="#3b2c12" stroke="none" points="9405.03,-2594.12 9405.03,-2614.12 9444.79,-2614.12 9444.79,-2594.12 9405.03,-2594.12"/>
<text xml:space="preserve" text-anchor="start" x="9415.91" y="-2602.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="9448.79" y="-2602.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/category/{categoryId}</text>
<text xml:space="preserve" text-anchor="start" x="9585.35" y="-2600.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Enable category on terminal</text>
<polygon fill="#2a3242" stroke="none" points="9404.03,-2571.12 9404.03,-2593.12 9689.97,-2593.12 9689.97,-2571.12 9404.03,-2571.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9404.03,-2571.12 9404.03,-2593.12 9689.97,-2593.12 9689.97,-2571.12 9404.03,-2571.12"/>
<polygon fill="#301c44" stroke="none" points="9405.03,-2572.12 9405.03,-2592.12 9488,-2592.12 9488,-2572.12 9405.03,-2572.12"/>
<text xml:space="preserve" text-anchor="start" x="9431.02" y="-2580.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="9492" y="-2580.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9609.38" y="-2578.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update POS terminal</text>
<polygon fill="#272e3d" stroke="none" points="9404.03,-2549.12 9404.03,-2571.12 9689.97,-2571.12 9689.97,-2549.12 9404.03,-2549.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9404.03,-2549.12 9404.03,-2571.12 9689.97,-2571.12 9689.97,-2549.12 9404.03,-2549.12"/>
<polygon fill="#3a181e" stroke="none" points="9405.03,-2550.12 9405.03,-2570.12 9491.23,-2570.12 9491.23,-2550.12 9405.03,-2550.12"/>
<text xml:space="preserve" text-anchor="start" x="9430.38" y="-2558.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="9495.23" y="-2558.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9612.05" y="-2556.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete POS terminal</text>
<polygon fill="#2a3242" stroke="none" points="9404.03,-2527.12 9404.03,-2549.12 9689.97,-2549.12 9689.97,-2527.12 9404.03,-2527.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9404.03,-2527.12 9404.03,-2549.12 9689.97,-2549.12 9689.97,-2527.12 9404.03,-2527.12"/>
<polygon fill="#3a181e" stroke="none" points="9405.03,-2528.12 9405.03,-2548.12 9478.14,-2548.12 9478.14,-2528.12 9405.03,-2528.12"/>
<text xml:space="preserve" text-anchor="start" x="9423.84" y="-2536.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="9482.14" y="-2536.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/all</text>
<text xml:space="preserve" text-anchor="start" x="9586.69" y="-2534.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Disable all categories on t…</text>
<polygon fill="#272e3d" stroke="none" points="9404.03,-2505.12 9404.03,-2527.12 9689.97,-2527.12 9689.97,-2505.12 9404.03,-2505.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9404.03,-2505.12 9404.03,-2527.12 9689.97,-2527.12 9689.97,-2505.12 9404.03,-2505.12"/>
<polygon fill="#3a181e" stroke="none" points="9405.03,-2506.12 9405.03,-2526.12 9446.54,-2526.12 9446.54,-2506.12 9405.03,-2506.12"/>
<text xml:space="preserve" text-anchor="start" x="9408.03" y="-2514.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="9450.54" y="-2514.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/category/{categoryId}</text>
<text xml:space="preserve" text-anchor="start" x="9583.58" y="-2512.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Disable category on terminal</text>
</g>
<!-- POSTerminal&#45;&gt;Company -->
<g id="edge51" class="edge">
<title>POSTerminal:e&#45;&gt;Company:n</title>
<g id="a_edge51"><a xlink:title="POSTerminal → Company (companyId)">
<path fill="none" stroke="#5aa7ff" stroke-width="1.4" d="M9690.97,-2670.12C9774.32,-2670.12 9670.82,-2543.73 9732,-2487.12 9825.27,-2400.8 9896.16,-2491.33 10015,-2446.32 10170.62,-2387.37 10328,-2407.23 10328,-2240.82 10328,-2240.82 10328,-2240.82 10328,-1359.12 10328,-1079.04 10612.3,-1116.04 10699,-849.72 10725.73,-767.6 10538.58,-833.43 10525.38,-757.77"/>
<polygon fill="#5aa7ff" stroke="#5aa7ff" stroke-width="1.4" points="10527.85,-757.8 10524.83,-751.03 10522.96,-758.21 10527.85,-757.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="10355.01" y="-1706.32" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#5aa7ff"> &#160;companyId &#160;</text>
</g>
<!-- POSTerminal&#45;&gt;Category -->
<g id="edge52" class="edge">
<title>POSTerminal:w&#45;&gt;Category:n</title>
<g id="a_edge52"><a xlink:title="POSTerminal → Category (root_category)">
<path fill="none" stroke="#f5c15c" stroke-width="1.4" d="M9403.03,-2670.12C9319.68,-2670.12 9426.66,-2539.72 9362,-2487.12 9316.76,-2450.32 7321.31,-2454.83 7263,-2454.32 7235.17,-2454.07 3283.09,-2452.67 3256,-2446.32 3170.05,-2426.15 3078.12,-2445.27 3072.11,-2364.05"/>
<polygon fill="#f5c15c" stroke="#f5c15c" stroke-width="1.4" points="3074.57,-2364.34 3071.88,-2357.43 3069.68,-2364.52 3074.57,-2364.34"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="8974.81" y="-2457.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#f5c15c"> &#160;root_category &#160;</text>
</g>
<!-- Printer -->
<g id="node31" class="node">
<title>Printer</title>
<polygon fill="#33415c" stroke="none" points="9900.26,-2672.12 9900.26,-2703.12 10055.74,-2703.12 10055.74,-2672.12 9900.26,-2672.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9900.26,-2672.12 9900.26,-2703.12 10055.74,-2703.12 10055.74,-2672.12 9900.26,-2672.12"/>
<text xml:space="preserve" text-anchor="start" x="9958.66" y="-2688.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Printer</text>
<text xml:space="preserve" text-anchor="start" x="9963.99" y="-2679.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/printer</text>
<polygon fill="#2a3242" stroke="none" points="9900.26,-2650.12 9900.26,-2672.12 10055.74,-2672.12 10055.74,-2650.12 9900.26,-2650.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9900.26,-2650.12 9900.26,-2672.12 10055.74,-2672.12 10055.74,-2650.12 9900.26,-2650.12"/>
<polygon fill="#182b40" stroke="none" points="9901.26,-2651.12 9901.26,-2671.12 9957.71,-2671.12 9957.71,-2651.12 9901.26,-2651.12"/>
<text xml:space="preserve" text-anchor="start" x="9920.23" y="-2659.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9961.71" y="-2659.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="10009.39" y="-2657.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List printers</text>
<polygon fill="#272e3d" stroke="none" points="9900.26,-2628.12 9900.26,-2650.12 10055.74,-2650.12 10055.74,-2628.12 9900.26,-2628.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9900.26,-2628.12 9900.26,-2650.12 10055.74,-2650.12 10055.74,-2628.12 9900.26,-2628.12"/>
<polygon fill="#143826" stroke="none" points="9901.26,-2629.12 9901.26,-2649.12 9955.19,-2649.12 9955.19,-2629.12 9901.26,-2629.12"/>
<text xml:space="preserve" text-anchor="start" x="9915.97" y="-2637.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9959.19" y="-2637.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="10001.83" y="-2635.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create printer</text>
<polygon fill="#2a3242" stroke="none" points="9900.26,-2606.12 9900.26,-2628.12 10055.74,-2628.12 10055.74,-2606.12 9900.26,-2606.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9900.26,-2606.12 9900.26,-2628.12 10055.74,-2628.12 10055.74,-2606.12 9900.26,-2606.12"/>
<polygon fill="#182b40" stroke="none" points="9901.26,-2607.12 9901.26,-2627.12 9946.37,-2627.12 9946.37,-2607.12 9901.26,-2607.12"/>
<text xml:space="preserve" text-anchor="start" x="9914.57" y="-2615.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9950.37" y="-2615.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9992.05" y="-2613.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get printer by ID</text>
<polygon fill="#272e3d" stroke="none" points="9900.26,-2584.12 9900.26,-2606.12 10055.74,-2606.12 10055.74,-2584.12 9900.26,-2584.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9900.26,-2584.12 9900.26,-2606.12 10055.74,-2606.12 10055.74,-2584.12 9900.26,-2584.12"/>
<polygon fill="#3b2c12" stroke="none" points="9901.26,-2585.12 9901.26,-2605.12 9949.04,-2605.12 9949.04,-2585.12 9901.26,-2585.12"/>
<text xml:space="preserve" text-anchor="start" x="9916.15" y="-2593.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="9953.04" y="-2593.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="10000.05" y="-2591.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update printer</text>
<polygon fill="#2a3242" stroke="none" points="9900.26,-2562.12 9900.26,-2584.12 10055.74,-2584.12 10055.74,-2562.12 9900.26,-2562.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9900.26,-2562.12 9900.26,-2584.12 10055.74,-2584.12 10055.74,-2562.12 9900.26,-2562.12"/>
<polygon fill="#3b2c12" stroke="none" points="9901.26,-2563.12 9901.26,-2583.12 9943.71,-2583.12 9943.71,-2563.12 9901.26,-2563.12"/>
<text xml:space="preserve" text-anchor="start" x="9913.48" y="-2571.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="9947.71" y="-2571.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="9992.94" y="-2569.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder printers</text>
<polygon fill="#272e3d" stroke="none" points="9900.26,-2540.12 9900.26,-2562.12 10055.74,-2562.12 10055.74,-2540.12 9900.26,-2540.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9900.26,-2540.12 9900.26,-2562.12 10055.74,-2562.12 10055.74,-2540.12 9900.26,-2540.12"/>
<polygon fill="#301c44" stroke="none" points="9901.26,-2541.12 9901.26,-2561.12 9939.26,-2561.12 9939.26,-2541.12 9901.26,-2541.12"/>
<text xml:space="preserve" text-anchor="start" x="9904.76" y="-2549.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="9943.26" y="-2549.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9970.71" y="-2547.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update printer (partial)</text>
<polygon fill="#2a3242" stroke="none" points="9900.26,-2518.12 9900.26,-2540.12 10055.74,-2540.12 10055.74,-2518.12 9900.26,-2518.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9900.26,-2518.12 9900.26,-2540.12 10055.74,-2540.12 10055.74,-2518.12 9900.26,-2518.12"/>
<polygon fill="#3a181e" stroke="none" points="9901.26,-2519.12 9901.26,-2539.12 9952.26,-2539.12 9952.26,-2519.12 9901.26,-2519.12"/>
<text xml:space="preserve" text-anchor="start" x="9909.01" y="-2527.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="9956.26" y="-2527.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="10002.72" y="-2525.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete printer</text>
</g>
<!-- Printer&#45;&gt;Company -->
<g id="edge53" class="edge">
<title>Printer:e&#45;&gt;Company:n</title>
<g id="a_edge53"><a xlink:title="Printer → Company (companyId)">
<path fill="none" stroke="#c79bff" stroke-width="1.4" d="M10056.74,-2661.12C10073.08,-2661.12 10066.29,-2526.58 10055.74,-2514.12 9999.08,-2447.19 9729.47,-2507.86 9667,-2446.32 9600.78,-2381.07 9628,-2333.78 9628,-2240.82 9628,-2240.82 9628,-2240.82 9628,-1359.12 9628,-1108.63 9697.22,-1002.27 9911,-871.72 9951.36,-847.07 10289.8,-859.79 10336,-849.72 10451.67,-824.49 10583.18,-868.07 10589.78,-757.85"/>
<polygon fill="#c79bff" stroke="#c79bff" stroke-width="1.4" points="10592.22,-758.1 10589.98,-751.03 10587.32,-757.96 10592.22,-758.1"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="9655.01" y="-1706.32" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#c79bff"> &#160;companyId &#160;</text>
</g>
<!-- LabelTemplate -->
<g id="node32" class="node">
<title>LabelTemplate</title>
<polygon fill="#33415c" stroke="none" points="9141.69,-2659.12 9141.69,-2694.12 9320.31,-2694.12 9320.31,-2659.12 9141.69,-2659.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9141.69,-2659.12 9141.69,-2694.12 9320.31,-2694.12 9320.31,-2659.12 9141.69,-2659.12"/>
<polygon fill="#33415c" stroke="none" points="9143.69,-2688.12 9143.69,-2692.12 9318.31,-2692.12 9318.31,-2688.12 9143.69,-2688.12"/>
<text xml:space="preserve" text-anchor="start" x="9188.99" y="-2675.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">LabelTemplate</text>
<text xml:space="preserve" text-anchor="start" x="9202.98" y="-2666.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/labeltemplate</text>
<polygon fill="#2a3242" stroke="none" points="9141.69,-2637.12 9141.69,-2659.12 9320.31,-2659.12 9320.31,-2637.12 9141.69,-2637.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9141.69,-2637.12 9141.69,-2659.12 9320.31,-2659.12 9320.31,-2637.12 9141.69,-2637.12"/>
<polygon fill="#182b40" stroke="none" points="9142.69,-2638.12 9142.69,-2658.12 9197.81,-2658.12 9197.81,-2638.12 9142.69,-2638.12"/>
<text xml:space="preserve" text-anchor="start" x="9161" y="-2646.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9201.81" y="-2646.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9246.83" y="-2644.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List label templates</text>
<polygon fill="#272e3d" stroke="none" points="9141.69,-2615.12 9141.69,-2637.12 9320.31,-2637.12 9320.31,-2615.12 9141.69,-2615.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9141.69,-2615.12 9141.69,-2637.12 9320.31,-2637.12 9320.31,-2615.12 9141.69,-2615.12"/>
<polygon fill="#143826" stroke="none" points="9142.69,-2616.12 9142.69,-2636.12 9195.29,-2636.12 9195.29,-2616.12 9142.69,-2616.12"/>
<text xml:space="preserve" text-anchor="start" x="9156.74" y="-2624.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9199.29" y="-2624.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9239.27" y="-2622.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create label template</text>
<polygon fill="#2a3242" stroke="none" points="9141.69,-2593.12 9141.69,-2615.12 9320.31,-2615.12 9320.31,-2593.12 9141.69,-2593.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9141.69,-2593.12 9141.69,-2615.12 9320.31,-2615.12 9320.31,-2593.12 9141.69,-2593.12"/>
<polygon fill="#182b40" stroke="none" points="9142.69,-2594.12 9142.69,-2614.12 9186.47,-2614.12 9186.47,-2594.12 9142.69,-2594.12"/>
<text xml:space="preserve" text-anchor="start" x="9155.33" y="-2602.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9190.47" y="-2602.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9229.49" y="-2600.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get label template by ID</text>
<polygon fill="#272e3d" stroke="none" points="9141.69,-2571.12 9141.69,-2593.12 9320.31,-2593.12 9320.31,-2571.12 9141.69,-2571.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9141.69,-2571.12 9141.69,-2593.12 9320.31,-2593.12 9320.31,-2571.12 9141.69,-2571.12"/>
<polygon fill="#3b2c12" stroke="none" points="9142.69,-2572.12 9142.69,-2592.12 9189.14,-2592.12 9189.14,-2572.12 9142.69,-2572.12"/>
<text xml:space="preserve" text-anchor="start" x="9156.92" y="-2580.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="9193.14" y="-2580.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9237.48" y="-2578.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update label template</text>
<polygon fill="#2a3242" stroke="none" points="9141.69,-2549.12 9141.69,-2571.12 9320.31,-2571.12 9320.31,-2549.12 9141.69,-2549.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9141.69,-2549.12 9141.69,-2571.12 9320.31,-2571.12 9320.31,-2549.12 9141.69,-2549.12"/>
<polygon fill="#301c44" stroke="none" points="9142.69,-2550.12 9142.69,-2570.12 9180.69,-2570.12 9180.69,-2550.12 9142.69,-2550.12"/>
<text xml:space="preserve" text-anchor="start" x="9146.19" y="-2558.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="9184.69" y="-2558.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9212.14" y="-2556.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update label template (part…</text>
<polygon fill="#272e3d" stroke="none" points="9141.69,-2527.12 9141.69,-2549.12 9320.31,-2549.12 9320.31,-2527.12 9141.69,-2527.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9141.69,-2527.12 9141.69,-2549.12 9320.31,-2549.12 9320.31,-2527.12 9141.69,-2527.12"/>
<polygon fill="#3a181e" stroke="none" points="9142.69,-2528.12 9142.69,-2548.12 9192.36,-2548.12 9192.36,-2528.12 9142.69,-2528.12"/>
<text xml:space="preserve" text-anchor="start" x="9149.78" y="-2536.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="9196.36" y="-2536.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9240.15" y="-2534.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete label template</text>
</g>
<!-- Printer&#45;&gt;LabelTemplate -->
<g id="edge54" class="edge">
<title>Printer:w&#45;&gt;LabelTemplate:n</title>
<g id="a_edge54"><a xlink:title="Printer → LabelTemplate (templates)">
<path fill="none" stroke="#ff9f5a" stroke-width="1.4" d=""/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6752.28" y="-2.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff9f5a"> &#160;templates &#160;</text>
</g>
<!-- LabelTemplate&#45;&gt;Company -->
<g id="edge55" class="edge">
<title>LabelTemplate:e&#45;&gt;Company:n</title>
<g id="a_edge55"><a xlink:title="LabelTemplate → Company (companyId)">
<path fill="none" stroke="#5cd6d6" stroke-width="1.4" d="M9321.31,-2648.12C9395.11,-2648.12 9305.1,-2534.13 9362,-2487.12 9427.21,-2433.24 9664.95,-2500.02 9742,-2465.12 9869.48,-2407.37 9963,-2380.76 9963,-2240.82 9963,-2240.82 9963,-2240.82 9963,-1359.12 9963,-1092.69 10085.46,-1011.95 10312,-871.72 10364.44,-839.26 10400.42,-887.7 10449,-849.72 10484.89,-821.65 10491.23,-800.5 10491.9,-758.01"/>
<polygon fill="#5cd6d6" stroke="#5cd6d6" stroke-width="1.4" points="10494.35,-758.05 10491.95,-751.04 10489.45,-758.02 10494.35,-758.05"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="9990.01" y="-1706.32" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#5cd6d6"> &#160;companyId &#160;</text>
</g>
<!-- POSSync -->
<g id="node33" class="node">
<title>POSSync</title>
<polygon fill="#33415c" stroke="none" points="9603.3,-2650.12 9603.3,-2681.12 9816.7,-2681.12 9816.7,-2650.12 9603.3,-2650.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9603.3,-2650.12 9603.3,-2681.12 9816.7,-2681.12 9816.7,-2650.12 9603.3,-2650.12"/>
<text xml:space="preserve" text-anchor="start" x="9682.99" y="-2666.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">POSSync</text>
<text xml:space="preserve" text-anchor="start" x="9704" y="-2657.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/v1</text>
<polygon fill="#2a3242" stroke="none" points="9603.3,-2628.12 9603.3,-2650.12 9816.7,-2650.12 9816.7,-2628.12 9603.3,-2628.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9603.3,-2628.12 9603.3,-2650.12 9816.7,-2650.12 9816.7,-2628.12 9603.3,-2628.12"/>
<polygon fill="#182b40" stroke="none" points="9604.3,-2629.12 9604.3,-2649.12 9642.3,-2649.12 9642.3,-2629.12 9604.3,-2629.12"/>
<text xml:space="preserve" text-anchor="start" x="9614.05" y="-2637.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9646.3" y="-2637.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/category</text>
<text xml:space="preserve" text-anchor="start" x="9698.77" y="-2635.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">JTL&#45;POS category synchroniz…</text>
<polygon fill="#272e3d" stroke="none" points="9603.3,-2606.12 9603.3,-2628.12 9816.7,-2628.12 9816.7,-2606.12 9603.3,-2606.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9603.3,-2606.12 9603.3,-2628.12 9816.7,-2628.12 9816.7,-2606.12 9603.3,-2606.12"/>
<polygon fill="#182b40" stroke="none" points="9604.3,-2607.12 9604.3,-2627.12 9653.56,-2627.12 9653.56,-2607.12 9604.3,-2607.12"/>
<text xml:space="preserve" text-anchor="start" x="9619.68" y="-2615.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9657.56" y="-2615.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/client</text>
<text xml:space="preserve" text-anchor="start" x="9716.98" y="-2613.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">POS discovery and pairing</text>
<polygon fill="#2a3242" stroke="none" points="9603.3,-2584.12 9603.3,-2606.12 9816.7,-2606.12 9816.7,-2584.12 9603.3,-2584.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9603.3,-2584.12 9603.3,-2606.12 9816.7,-2606.12 9816.7,-2584.12 9603.3,-2584.12"/>
<polygon fill="#182b40" stroke="none" points="9604.3,-2585.12 9604.3,-2605.12 9655.2,-2605.12 9655.2,-2585.12 9604.3,-2585.12"/>
<text xml:space="preserve" text-anchor="start" x="9620.5" y="-2593.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9659.2" y="-2593.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/init</text>
<text xml:space="preserve" text-anchor="start" x="9710.76" y="-2591.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">POS sync initialization cou…</text>
<polygon fill="#272e3d" stroke="none" points="9603.3,-2562.12 9603.3,-2584.12 9816.7,-2584.12 9816.7,-2562.12 9603.3,-2562.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9603.3,-2562.12 9603.3,-2584.12 9816.7,-2584.12 9816.7,-2562.12 9603.3,-2562.12"/>
<polygon fill="#182b40" stroke="none" points="9604.3,-2563.12 9604.3,-2583.12 9648.97,-2583.12 9648.97,-2563.12 9604.3,-2563.12"/>
<text xml:space="preserve" text-anchor="start" x="9617.39" y="-2571.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9652.97" y="-2571.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/pimage</text>
<text xml:space="preserve" text-anchor="start" x="9712.09" y="-2569.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">POS product image delivery</text>
<polygon fill="#2a3242" stroke="none" points="9603.3,-2540.12 9603.3,-2562.12 9816.7,-2562.12 9816.7,-2540.12 9603.3,-2540.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9603.3,-2540.12 9603.3,-2562.12 9816.7,-2562.12 9816.7,-2540.12 9603.3,-2540.12"/>
<polygon fill="#182b40" stroke="none" points="9604.3,-2541.12 9604.3,-2561.12 9644.38,-2561.12 9644.38,-2541.12 9604.3,-2541.12"/>
<text xml:space="preserve" text-anchor="start" x="9615.09" y="-2549.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9648.38" y="-2549.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/product</text>
<text xml:space="preserve" text-anchor="start" x="9700.54" y="-2547.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">JTL&#45;POS product catalog syn…</text>
</g>
<!-- POSSync&#45;&gt;Article -->
<g id="edge57" class="edge">
<title>POSSync:w&#45;&gt;Article:n</title>
<g id="a_edge57"><a xlink:title="POSSync → Article (product sync)">
<path fill="none" stroke="#8f95ff" stroke-width="1.4" d="M9602.3,-2551.12C9498.28,-2551.12 9632.69,-2155.6 9556,-2085.32 9524.99,-2056.9 3628.36,-2054.59 3375,-2014.23"/>
<polygon fill="#8f95ff" stroke="#8f95ff" stroke-width="1.4" points="3376.03,-2011.99 3368.62,-2012.17 3374.52,-2016.65 3376.03,-2011.99"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="9611.47" y="-2237.12" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8f95ff"> &#160;product sync &#160;</text>
</g>
<!-- POSSync&#45;&gt;Category -->
<g id="edge58" class="edge">
<title>POSSync:w&#45;&gt;Category:n</title>
<g id="a_edge58"><a xlink:title="POSSync → Category (category sync)">
<path fill="none" stroke="#58d18a" stroke-width="1.4" d="M9602.3,-2639.12C8087.5,-2639.12 7713.19,-2497.46 6199,-2454.32 6158.14,-2453.15 3295.39,-2457.23 3256,-2446.32 3182.87,-2426.06 3109.38,-2433.62 3103.75,-2364.17"/>
<polygon fill="#58d18a" stroke="#58d18a" stroke-width="1.4" points="3106.2,-2364.33 3103.48,-2357.43 3101.31,-2364.52 3106.2,-2364.33"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6520.08" y="-2457.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#58d18a"> &#160;category sync &#160;</text>
</g>
<!-- ModelConversation -->
<g id="node34" class="node">
<title>ModelConversation</title>
<polygon fill="#33415c" stroke="none" points="6045.13,-2301.32 6045.13,-2332.32 6264.87,-2332.32 6264.87,-2301.32 6045.13,-2301.32"/>
<polygon fill="none" stroke="#3f4c5f" points="6045.13,-2301.32 6045.13,-2332.32 6264.87,-2332.32 6264.87,-2301.32 6045.13,-2301.32"/>
<text xml:space="preserve" text-anchor="start" x="6099.33" y="-2317.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">ModelConversation</text>
<text xml:space="preserve" text-anchor="start" x="6115.98" y="-2308.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/modelconversation</text>
<polygon fill="#2a3242" stroke="none" points="6045.13,-2279.32 6045.13,-2301.32 6264.87,-2301.32 6264.87,-2279.32 6045.13,-2279.32"/>
<polygon fill="none" stroke="#3f4c5f" points="6045.13,-2279.32 6045.13,-2301.32 6264.87,-2301.32 6264.87,-2279.32 6045.13,-2279.32"/>
<polygon fill="#182b40" stroke="none" points="6046.13,-2280.32 6046.13,-2300.32 6116.44,-2300.32 6116.44,-2280.32 6046.13,-2280.32"/>
<text xml:space="preserve" text-anchor="start" x="6072.03" y="-2288.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6120.44" y="-2288.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="6195.84" y="-2287.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List conversations</text>
<polygon fill="#272e3d" stroke="none" points="6045.13,-2257.32 6045.13,-2279.32 6264.87,-2279.32 6264.87,-2257.32 6045.13,-2257.32"/>
<polygon fill="none" stroke="#3f4c5f" points="6045.13,-2257.32 6045.13,-2279.32 6264.87,-2279.32 6264.87,-2257.32 6045.13,-2257.32"/>
<polygon fill="#143826" stroke="none" points="6046.13,-2258.32 6046.13,-2278.32 6113.92,-2278.32 6113.92,-2258.32 6046.13,-2258.32"/>
<text xml:space="preserve" text-anchor="start" x="6067.77" y="-2266.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6117.92" y="-2266.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="6188.28" y="-2265.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create conversation</text>
<polygon fill="#2a3242" stroke="none" points="6045.13,-2235.32 6045.13,-2257.32 6264.87,-2257.32 6264.87,-2235.32 6045.13,-2235.32"/>
<polygon fill="none" stroke="#3f4c5f" points="6045.13,-2235.32 6045.13,-2257.32 6264.87,-2257.32 6264.87,-2235.32 6045.13,-2235.32"/>
<polygon fill="#182b40" stroke="none" points="6046.13,-2236.32 6046.13,-2256.32 6112.07,-2256.32 6112.07,-2236.32 6046.13,-2236.32"/>
<text xml:space="preserve" text-anchor="start" x="6069.85" y="-2244.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6116.07" y="-2244.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="6199.4" y="-2243.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get conversation</text>
<polygon fill="#272e3d" stroke="none" points="6045.13,-2213.32 6045.13,-2235.32 6264.87,-2235.32 6264.87,-2213.32 6045.13,-2213.32"/>
<polygon fill="none" stroke="#3f4c5f" points="6045.13,-2213.32 6045.13,-2235.32 6264.87,-2235.32 6264.87,-2213.32 6045.13,-2213.32"/>
<polygon fill="#182b40" stroke="none" points="6046.13,-2214.32 6046.13,-2234.32 6084.13,-2234.32 6084.13,-2214.32 6046.13,-2214.32"/>
<text xml:space="preserve" text-anchor="start" x="6055.88" y="-2222.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6088.13" y="-2222.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/message</text>
<text xml:space="preserve" text-anchor="start" x="6161.16" y="-2221.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List conversation messages</text>
<polygon fill="#2a3242" stroke="none" points="6045.13,-2191.32 6045.13,-2213.32 6264.87,-2213.32 6264.87,-2191.32 6045.13,-2191.32"/>
<polygon fill="none" stroke="#3f4c5f" points="6045.13,-2191.32 6045.13,-2213.32 6264.87,-2213.32 6264.87,-2191.32 6045.13,-2191.32"/>
<polygon fill="#182b40" stroke="none" points="6046.13,-2192.32 6046.13,-2212.32 6084.35,-2212.32 6084.35,-2192.32 6046.13,-2192.32"/>
<text xml:space="preserve" text-anchor="start" x="6055.99" y="-2200.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6088.35" y="-2200.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/stream</text>
<text xml:space="preserve" text-anchor="start" x="6151.82" y="-2199.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Stream conversation events …</text>
<polygon fill="#272e3d" stroke="none" points="6045.13,-2169.32 6045.13,-2191.32 6264.87,-2191.32 6264.87,-2169.32 6045.13,-2169.32"/>
<polygon fill="none" stroke="#3f4c5f" points="6045.13,-2169.32 6045.13,-2191.32 6264.87,-2191.32 6264.87,-2169.32 6045.13,-2169.32"/>
<polygon fill="#143826" stroke="none" points="6046.13,-2170.32 6046.13,-2190.32 6091.98,-2190.32 6091.98,-2170.32 6046.13,-2170.32"/>
<text xml:space="preserve" text-anchor="start" x="6056.8" y="-2178.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6095.98" y="-2178.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/message</text>
<text xml:space="preserve" text-anchor="start" x="6184.73" y="-2177.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Post a user message</text>
<polygon fill="#2a3242" stroke="none" points="6045.13,-2147.32 6045.13,-2169.32 6264.87,-2169.32 6264.87,-2147.32 6045.13,-2147.32"/>
<polygon fill="none" stroke="#3f4c5f" points="6045.13,-2147.32 6045.13,-2169.32 6264.87,-2169.32 6264.87,-2147.32 6045.13,-2147.32"/>
<polygon fill="#3a181e" stroke="none" points="6046.13,-2148.32 6046.13,-2168.32 6110.99,-2168.32 6110.99,-2148.32 6046.13,-2148.32"/>
<text xml:space="preserve" text-anchor="start" x="6060.81" y="-2156.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="6114.99" y="-2156.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="6189.17" y="-2155.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete conversation</text>
</g>
<!-- ModelConversation&#45;&gt;Vfs -->
<g id="edge61" class="edge">
<title>ModelConversation:e&#45;&gt;Vfs:n</title>
<g id="a_edge61"><a xlink:title="ModelConversation → Vfs (vfs workspace)">
<path fill="none" stroke="#a98cff" stroke-width="1.4" d="M6265.87,-2290.32C7758.92,-2290.32 7879.28,-1295.21 9311,-871.72 9378.57,-851.73 9409.72,-889.31 9468,-849.72 9503.44,-825.64 9517.16,-808.25 9518.82,-768.7"/>
<polygon fill="#a98cff" stroke="#a98cff" stroke-width="1.4" points="9521.27,-769.08 9518.96,-762.04 9516.37,-768.98 9521.27,-769.08"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="8337.56" y="-1357.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#a98cff"> &#160;vfs workspace &#160;</text>
</g>
<!-- MCP -->
<g id="node35" class="node">
<title>MCP</title>
<polygon fill="#33415c" stroke="none" points="5675,-2345.32 5675,-2376.32 5961,-2376.32 5961,-2345.32 5675,-2345.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2345.32 5675,-2376.32 5961,-2376.32 5961,-2345.32 5675,-2345.32"/>
<text xml:space="preserve" text-anchor="start" x="5804.67" y="-2361.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">MCP</text>
<text xml:space="preserve" text-anchor="start" x="5808.25" y="-2352.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/mcp</text>
<polygon fill="#2a3242" stroke="none" points="5675,-2323.32 5675,-2345.32 5961,-2345.32 5961,-2323.32 5675,-2323.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2323.32 5675,-2345.32 5961,-2345.32 5961,-2323.32 5675,-2323.32"/>
<polygon fill="#143826" stroke="none" points="5676,-2324.32 5676,-2344.32 5752.24,-2344.32 5752.24,-2324.32 5676,-2324.32"/>
<text xml:space="preserve" text-anchor="start" x="5701.87" y="-2332.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5756.24" y="-2332.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="5843.52" y="-2331.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Model Context Protocol (MCP…</text>
<polygon fill="#272e3d" stroke="none" points="5675,-2301.32 5675,-2323.32 5961,-2323.32 5961,-2301.32 5675,-2301.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2301.32 5675,-2323.32 5961,-2323.32 5961,-2301.32 5675,-2301.32"/>
<polygon fill="#182b40" stroke="none" points="5676,-2302.32 5676,-2322.32 5733.32,-2322.32 5733.32,-2302.32 5676,-2302.32"/>
<text xml:space="preserve" text-anchor="start" x="5695.41" y="-2310.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5737.32" y="-2310.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/authorizations</text>
<text xml:space="preserve" text-anchor="start" x="5855.07" y="-2309.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List active MCP client auth…</text>
<polygon fill="#2a3242" stroke="none" points="5675,-2279.32 5675,-2301.32 5961,-2301.32 5961,-2279.32 5675,-2279.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2279.32 5675,-2301.32 5961,-2301.32 5961,-2279.32 5675,-2279.32"/>
<polygon fill="#182b40" stroke="none" points="5676,-2280.32 5676,-2300.32 5737.43,-2300.32 5737.43,-2280.32 5676,-2280.32"/>
<text xml:space="preserve" text-anchor="start" x="5697.46" y="-2288.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5741.43" y="-2288.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/authorize</text>
<text xml:space="preserve" text-anchor="start" x="5843.51" y="-2287.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get MCP authorization promp…</text>
<polygon fill="#272e3d" stroke="none" points="5675,-2257.32 5675,-2279.32 5961,-2279.32 5961,-2257.32 5675,-2257.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2257.32 5675,-2279.32 5961,-2279.32 5961,-2257.32 5675,-2257.32"/>
<polygon fill="#182b40" stroke="none" points="5676,-2258.32 5676,-2278.32 5747.46,-2278.32 5747.46,-2258.32 5676,-2258.32"/>
<text xml:space="preserve" text-anchor="start" x="5702.48" y="-2266.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5751.46" y="-2266.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/clients</text>
<text xml:space="preserve" text-anchor="start" x="5860.86" y="-2265.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List registered MCP clients</text>
<polygon fill="#2a3242" stroke="none" points="5675,-2235.32 5675,-2257.32 5961,-2257.32 5961,-2235.32 5675,-2235.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2235.32 5675,-2257.32 5961,-2257.32 5961,-2235.32 5675,-2235.32"/>
<polygon fill="#182b40" stroke="none" points="5676,-2236.32 5676,-2256.32 5728.9,-2256.32 5728.9,-2236.32 5676,-2236.32"/>
<text xml:space="preserve" text-anchor="start" x="5693.2" y="-2244.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5732.9" y="-2244.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/oauth/authorize</text>
<text xml:space="preserve" text-anchor="start" x="5847.94" y="-2243.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">OAuth 2.1 Authorization End…</text>
<polygon fill="#272e3d" stroke="none" points="5675,-2213.32 5675,-2235.32 5961,-2235.32 5961,-2213.32 5675,-2213.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2213.32 5675,-2235.32 5961,-2235.32 5961,-2213.32 5675,-2213.32"/>
<polygon fill="#143826" stroke="none" points="5676,-2214.32 5676,-2234.32 5739.06,-2234.32 5739.06,-2214.32 5676,-2214.32"/>
<text xml:space="preserve" text-anchor="start" x="5695.27" y="-2222.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5743.06" y="-2222.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/authorize</text>
<text xml:space="preserve" text-anchor="start" x="5848.4" y="-2221.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Grant or deny MCP client au…</text>
<polygon fill="#2a3242" stroke="none" points="5675,-2191.32 5675,-2213.32 5961,-2213.32 5961,-2191.32 5675,-2191.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2191.32 5675,-2213.32 5961,-2213.32 5961,-2191.32 5675,-2191.32"/>
<polygon fill="#143826" stroke="none" points="5676,-2192.32 5676,-2212.32 5728.2,-2212.32 5728.2,-2192.32 5676,-2192.32"/>
<text xml:space="preserve" text-anchor="start" x="5689.85" y="-2200.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5732.2" y="-2200.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/oauth/introspect</text>
<text xml:space="preserve" text-anchor="start" x="5849.73" y="-2199.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">OAuth 2.0 Token Introspecti…</text>
<polygon fill="#272e3d" stroke="none" points="5675,-2169.32 5675,-2191.32 5961,-2191.32 5961,-2169.32 5675,-2169.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2169.32 5675,-2191.32 5961,-2191.32 5961,-2169.32 5675,-2169.32"/>
<polygon fill="#143826" stroke="none" points="5676,-2170.32 5676,-2190.32 5732.39,-2190.32 5732.39,-2170.32 5676,-2170.32"/>
<text xml:space="preserve" text-anchor="start" x="5691.94" y="-2178.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5736.39" y="-2178.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/oauth/register</text>
<text xml:space="preserve" text-anchor="start" x="5850.63" y="-2177.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Dynamic Client Registration…</text>
<polygon fill="#2a3242" stroke="none" points="5675,-2147.32 5675,-2169.32 5961,-2169.32 5961,-2147.32 5675,-2147.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2147.32 5675,-2169.32 5961,-2169.32 5961,-2147.32 5675,-2147.32"/>
<polygon fill="#143826" stroke="none" points="5676,-2148.32 5676,-2168.32 5733.65,-2168.32 5733.65,-2148.32 5676,-2148.32"/>
<text xml:space="preserve" text-anchor="start" x="5692.57" y="-2156.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5737.65" y="-2156.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/oauth/token</text>
<text xml:space="preserve" text-anchor="start" x="5844.39" y="-2155.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">OAuth 2.1 Token Endpoint (R…</text>
<polygon fill="#272e3d" stroke="none" points="5675,-2125.32 5675,-2147.32 5961,-2147.32 5961,-2125.32 5675,-2125.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2125.32 5675,-2147.32 5961,-2147.32 5961,-2125.32 5675,-2125.32"/>
<polygon fill="#3a181e" stroke="none" points="5676,-2126.32 5676,-2146.32 5717.5,-2146.32 5717.5,-2126.32 5676,-2126.32"/>
<text xml:space="preserve" text-anchor="start" x="5679" y="-2134.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="5721.5" y="-2134.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/authorizations/{clientId}</text>
<text xml:space="preserve" text-anchor="start" x="5846.18" y="-2133.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Revoke MCP client authoriza…</text>
<polygon fill="#2a3242" stroke="none" points="5675,-2103.32 5675,-2125.32 5961,-2125.32 5961,-2103.32 5675,-2103.32"/>
<polygon fill="none" stroke="#3f4c5f" points="5675,-2103.32 5675,-2125.32 5961,-2125.32 5961,-2103.32 5675,-2103.32"/>
<polygon fill="#3a181e" stroke="none" points="5676,-2104.32 5676,-2124.32 5732.39,-2124.32 5732.39,-2104.32 5676,-2104.32"/>
<text xml:space="preserve" text-anchor="start" x="5686.44" y="-2112.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="5736.39" y="-2112.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/clients/{clientId}</text>
<text xml:space="preserve" text-anchor="start" x="5854.18" y="-2111.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete registered MCP client</text>
</g>
<!-- MCP&#45;&gt;Article -->
<g id="edge62" class="edge">
<title>MCP:w&#45;&gt;Article:n</title>
<g id="a_edge62"><a xlink:title="MCP → Article (article tools)">
<path fill="none" stroke="#ff6f6f" stroke-width="1.4" d="M5674,-2334.32C5077.42,-2334.32 4946.62,-2162.06 4355,-2085.32 4341.52,-2083.57 3429.79,-2031.91 3331.89,-2014.19"/>
<polygon fill="#ff6f6f" stroke="#ff6f6f" stroke-width="1.4" points="3332.83,-2011.92 3325.42,-2012.15 3331.36,-2016.59 3332.83,-2011.92"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4013.48" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff6f6f"> &#160;article tools &#160;</text>
</g>
<!-- MCP&#45;&gt;Order -->
<g id="edge63" class="edge">
<title>MCP:w&#45;&gt;Order:n</title>
<g id="a_edge63"><a xlink:title="MCP → Order (order tools)">
<path fill="none" stroke="#4ecb8f" stroke-width="1.4" d="M5674,-2334.32C4544.3,-2334.32 4458.47,-2123.97 6003,-2085.32 6023.68,-2084.8 8967.43,-2078 8982,-2063.32 8985.38,-2059.91 8985.39,-2055.92 8982,-2052.52 8943.99,-2014.33 1274.68,-2031.77 1223,-2016.52 1117.67,-1985.42 1014.82,-1992.03 1009.28,-1888.51"/>
<polygon fill="#4ecb8f" stroke="#4ecb8f" stroke-width="1.4" points="1011.73,-1888.57 1009.1,-1881.64 1006.83,-1888.7 1011.73,-1888.57"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="9010.8" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#4ecb8f"> &#160;order tools &#160;</text>
</g>
<!-- Events -->
<g id="node36" class="node">
<title>Events</title>
<polygon fill="#33415c" stroke="none" points="8865.13,-2235.32 8865.13,-2266.32 9028.87,-2266.32 9028.87,-2235.32 8865.13,-2235.32"/>
<polygon fill="none" stroke="#3f4c5f" points="8865.13,-2235.32 8865.13,-2266.32 9028.87,-2266.32 9028.87,-2235.32 8865.13,-2235.32"/>
<text xml:space="preserve" text-anchor="start" x="8927.32" y="-2251.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Events</text>
<text xml:space="preserve" text-anchor="start" x="8932.49" y="-2242.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/events</text>
<polygon fill="#2a3242" stroke="none" points="8865.13,-2213.32 8865.13,-2235.32 9028.87,-2235.32 9028.87,-2213.32 8865.13,-2213.32"/>
<polygon fill="none" stroke="#3f4c5f" points="8865.13,-2213.32 8865.13,-2235.32 9028.87,-2235.32 9028.87,-2213.32 8865.13,-2213.32"/>
<polygon fill="#182b40" stroke="none" points="8866.13,-2214.32 8866.13,-2234.32 8904.13,-2234.32 8904.13,-2214.32 8866.13,-2214.32"/>
<text xml:space="preserve" text-anchor="start" x="8875.88" y="-2222.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="8908.13" y="-2222.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="8918.91" y="-2221.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Subscribe to update signals…</text>
</g>
<!-- Events&#45;&gt;Article -->
<g id="edge66" class="edge">
<title>Events:w&#45;&gt;Article:n</title>
<g id="a_edge66"><a xlink:title="Events → Article (article sse)">
<path fill="none" stroke="#e0b25a" stroke-width="1.4" d="M8864.13,-2224.32C7724.62,-2224.32 7442.62,-2130.42 6304,-2085.32 6264.17,-2083.74 3519.03,-2054.48 3352.86,-2015.22"/>
<polygon fill="#e0b25a" stroke="#e0b25a" stroke-width="1.4" points="3354.29,-2013.19 3346.92,-2012.42 3352.2,-2017.62 3354.29,-2013.19"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4834.35" y="-2055.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#e0b25a"> &#160;article sse &#160;</text>
</g>
<!-- Events&#45;&gt;Stock -->
<g id="edge64" class="edge">
<title>Events:w&#45;&gt;Stock:n</title>
<g id="a_edge64"><a xlink:title="Events → Stock (stock sse)">
<path fill="none" stroke="#5aa7e6" stroke-width="1.4" d="M8864.13,-2224.32C7722.03,-2224.32 7444.31,-2382.31 6304,-2446.32 5978.63,-2464.58 5896.83,-2458.92 5571,-2465.12 5175.93,-2472.63 4187.15,-2459.15 3793,-2487.12 3201.55,-2529.08 3061.53,-2617.94 2470.03,-2659.12 2427.74,-2662.06 2375.45,-2699.66 2367.92,-2668.89"/>
<polygon fill="#5aa7e6" stroke="#5aa7e6" stroke-width="1.4" points="2370.39,-2668.93 2367.22,-2662.22 2365.51,-2669.44 2370.39,-2668.93"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6157.86" y="-2457.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#5aa7e6"> &#160;stock sse &#160;</text>
</g>
<!-- Events&#45;&gt;Ledger -->
<g id="edge65" class="edge">
<title>Events:w&#45;&gt;Ledger:n</title>
<g id="a_edge65"><a xlink:title="Events → Ledger (ledger sse)">
<path fill="none" stroke="#ff7aa8" stroke-width="1.4" d="M8864.13,-2224.32C7426.78,-2224.32 7072,-2482.07 5636,-2419.8 5485.77,-2413.29 4308.25,-2452.11 4262.31,-2309.08"/>
<polygon fill="#ff7aa8" stroke="#ff7aa8" stroke-width="1.4" points="4264.77,-2308.94 4261.26,-2302.41 4259.93,-2309.71 4264.77,-2308.94"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4042" y="-2457.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff7aa8"> &#160;ledger sse &#160;</text>
</g>
<!-- Health -->
<g id="node37" class="node">
<title>Health</title>
<polygon fill="#33415c" stroke="none" points="9112.92,-2235.32 9112.92,-2266.32 9253.08,-2266.32 9253.08,-2235.32 9112.92,-2235.32"/>
<polygon fill="none" stroke="#3f4c5f" points="9112.92,-2235.32 9112.92,-2266.32 9253.08,-2266.32 9253.08,-2235.32 9112.92,-2235.32"/>
<text xml:space="preserve" text-anchor="start" x="9164.66" y="-2251.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Health</text>
<text xml:space="preserve" text-anchor="start" x="9169.49" y="-2242.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/health</text>
<polygon fill="#2a3242" stroke="none" points="9112.92,-2213.32 9112.92,-2235.32 9253.08,-2235.32 9253.08,-2213.32 9112.92,-2213.32"/>
<polygon fill="none" stroke="#3f4c5f" points="9112.92,-2213.32 9112.92,-2235.32 9253.08,-2235.32 9253.08,-2213.32 9112.92,-2213.32"/>
<polygon fill="#182b40" stroke="none" points="9113.92,-2214.32 9113.92,-2234.32 9151.92,-2234.32 9151.92,-2214.32 9113.92,-2214.32"/>
<text xml:space="preserve" text-anchor="start" x="9123.67" y="-2222.62" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9155.92" y="-2222.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9166.7" y="-2221.12" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Database health check</text>
</g>
<!-- Legend -->
<g id="node38" class="node">
<title>Legend</title>
<polygon fill="#2a3242" stroke="none" points="9337.46,-2153.42 9337.46,-2326.22 9516.54,-2326.22 9516.54,-2153.42 9337.46,-2153.42"/>
<polygon fill="#33415c" stroke="none" points="9337.46,-2303.02 9337.46,-2326.22 9516.54,-2326.22 9516.54,-2303.02 9337.46,-2303.02"/>
<polygon fill="none" stroke="#3f4c5f" points="9337.46,-2303.02 9337.46,-2326.22 9516.54,-2326.22 9516.54,-2303.02 9337.46,-2303.02"/>
<text xml:space="preserve" text-anchor="start" x="9379.02" y="-2312.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="11.00" fill="#e2e8f0">API Graph Legend</text>
<polygon fill="#182b40" stroke="none" points="9337.46,-2282.22 9337.46,-2303.02 9378.97,-2303.02 9378.97,-2282.22 9337.46,-2282.22"/>
<polygon fill="none" stroke="#3f4c5f" points="9337.46,-2282.22 9337.46,-2303.02 9378.97,-2303.02 9378.97,-2282.22 9337.46,-2282.22"/>
<text xml:space="preserve" text-anchor="start" x="9348.96" y="-2290.92" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<polygon fill="none" stroke="#3f4c5f" points="9378.97,-2282.22 9378.97,-2303.02 9516.54,-2303.02 9516.54,-2282.22 9378.97,-2282.22"/>
<text xml:space="preserve" text-anchor="start" x="9383.97" y="-2289.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Safe retrieval / query</text>
<polygon fill="#143826" stroke="none" points="9337.46,-2261.42 9337.46,-2282.22 9378.97,-2282.22 9378.97,-2261.42 9337.46,-2261.42"/>
<polygon fill="none" stroke="#3f4c5f" points="9337.46,-2261.42 9337.46,-2282.22 9378.97,-2282.22 9378.97,-2261.42 9337.46,-2261.42"/>
<text xml:space="preserve" text-anchor="start" x="9345.96" y="-2270.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<polygon fill="none" stroke="#3f4c5f" points="9378.97,-2261.42 9378.97,-2282.22 9516.54,-2282.22 9516.54,-2261.42 9378.97,-2261.42"/>
<text xml:space="preserve" text-anchor="start" x="9383.97" y="-2268.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Create resource / action</text>
<polygon fill="#3b2c12" stroke="none" points="9337.46,-2240.62 9337.46,-2261.42 9378.97,-2261.42 9378.97,-2240.62 9337.46,-2240.62"/>
<polygon fill="none" stroke="#3f4c5f" points="9337.46,-2240.62 9337.46,-2261.42 9378.97,-2261.42 9378.97,-2240.62 9337.46,-2240.62"/>
<text xml:space="preserve" text-anchor="start" x="9349.21" y="-2249.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<polygon fill="none" stroke="#3f4c5f" points="9378.97,-2240.62 9378.97,-2261.42 9516.54,-2261.42 9516.54,-2240.62 9378.97,-2240.62"/>
<text xml:space="preserve" text-anchor="start" x="9383.97" y="-2247.42" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Full replace / collection update</text>
<polygon fill="#301c44" stroke="none" points="9337.46,-2219.82 9337.46,-2240.62 9378.97,-2240.62 9378.97,-2219.82 9337.46,-2219.82"/>
<polygon fill="none" stroke="#3f4c5f" points="9337.46,-2219.82 9337.46,-2240.62 9378.97,-2240.62 9378.97,-2219.82 9337.46,-2219.82"/>
<text xml:space="preserve" text-anchor="start" x="9342.71" y="-2228.52" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<polygon fill="none" stroke="#3f4c5f" points="9378.97,-2219.82 9378.97,-2240.62 9516.54,-2240.62 9516.54,-2219.82 9378.97,-2219.82"/>
<text xml:space="preserve" text-anchor="start" x="9383.97" y="-2226.62" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Partial entity update</text>
<polygon fill="#3a181e" stroke="none" points="9337.46,-2199.02 9337.46,-2219.82 9378.97,-2219.82 9378.97,-2199.02 9337.46,-2199.02"/>
<polygon fill="none" stroke="#3f4c5f" points="9337.46,-2199.02 9337.46,-2219.82 9378.97,-2219.82 9378.97,-2199.02 9337.46,-2199.02"/>
<text xml:space="preserve" text-anchor="start" x="9340.46" y="-2207.72" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<polygon fill="none" stroke="#3f4c5f" points="9378.97,-2199.02 9378.97,-2219.82 9516.54,-2219.82 9516.54,-2199.02 9378.97,-2199.02"/>
<text xml:space="preserve" text-anchor="start" x="9383.97" y="-2205.82" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Remove resource</text>
<polygon fill="none" stroke="#3f4c5f" points="9337.46,-2176.22 9337.46,-2199.02 9378.97,-2199.02 9378.97,-2176.22 9337.46,-2176.22"/>
<text xml:space="preserve" text-anchor="start" x="9348.1" y="-2184.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="14.00" fill="#e2e8f0">in#</text>
<polygon fill="none" stroke="#3f4c5f" points="9378.97,-2176.22 9378.97,-2199.02 9516.54,-2199.02 9516.54,-2176.22 9378.97,-2176.22"/>
<text xml:space="preserve" text-anchor="start" x="9383.97" y="-2184.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Inbound arrival port on resource</text>
<polygon fill="none" stroke="#3f4c5f" points="9337.46,-2153.42 9337.46,-2176.22 9378.97,-2176.22 9378.97,-2153.42 9337.46,-2153.42"/>
<text xml:space="preserve" text-anchor="start" x="9340.71" y="-2159.22" font-family="Helvetica,sans-Serif" font-size="14.00" fill="#5aa7ff">▪—▶</text>
<polygon fill="none" stroke="#3f4c5f" points="9378.97,-2153.42 9378.97,-2176.22 9516.54,-2176.22 9516.54,-2153.42 9378.97,-2153.42"/>
<text xml:space="preserve" text-anchor="start" x="9383.97" y="-2161.22" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Relational reference / dataflow</text>
</g>
<!-- SubagentSchedule -->
<g id="node39" class="node">
<title>SubagentSchedule</title>
<polygon fill="#33415c" stroke="none" points="9773.69,-2650.12 9773.69,-2681.12 9952.31,-2681.12 9952.31,-2650.12 9773.69,-2650.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9773.69,-2650.12 9773.69,-2681.12 9952.31,-2681.12 9952.31,-2650.12 9773.69,-2650.12"/>
<text xml:space="preserve" text-anchor="start" x="9808.99" y="-2666.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">SubagentSchedule</text>
<text xml:space="preserve" text-anchor="start" x="9825.22" y="-2657.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/subagentschedule</text>
<polygon fill="#2a3242" stroke="none" points="9773.69,-2628.12 9773.69,-2650.12 9952.31,-2650.12 9952.31,-2628.12 9773.69,-2628.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9773.69,-2628.12 9773.69,-2650.12 9952.31,-2650.12 9952.31,-2628.12 9773.69,-2628.12"/>
<polygon fill="#182b40" stroke="none" points="9774.69,-2629.12 9774.69,-2649.12 9824.02,-2649.12 9824.02,-2629.12 9774.69,-2629.12"/>
<text xml:space="preserve" text-anchor="start" x="9790.11" y="-2637.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9828.02" y="-2637.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9861.48" y="-2635.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List subagent schedules</text>
<polygon fill="#272e3d" stroke="none" points="9773.69,-2606.12 9773.69,-2628.12 9952.31,-2628.12 9952.31,-2606.12 9773.69,-2606.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9773.69,-2606.12 9773.69,-2628.12 9952.31,-2628.12 9952.31,-2606.12 9773.69,-2606.12"/>
<polygon fill="#143826" stroke="none" points="9774.69,-2607.12 9774.69,-2627.12 9821.5,-2627.12 9821.5,-2607.12 9774.69,-2607.12"/>
<text xml:space="preserve" text-anchor="start" x="9785.84" y="-2615.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="9825.5" y="-2615.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="9853.91" y="-2613.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create subagent schedule</text>
<polygon fill="#2a3242" stroke="none" points="9773.69,-2584.12 9773.69,-2606.12 9952.31,-2606.12 9952.31,-2584.12 9773.69,-2584.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9773.69,-2584.12 9773.69,-2606.12 9952.31,-2606.12 9952.31,-2584.12 9773.69,-2584.12"/>
<polygon fill="#182b40" stroke="none" points="9774.69,-2585.12 9774.69,-2605.12 9812.69,-2605.12 9812.69,-2585.12 9774.69,-2585.12"/>
<text xml:space="preserve" text-anchor="start" x="9784.44" y="-2593.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="9816.69" y="-2593.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9844.14" y="-2591.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get subagent schedule by ID</text>
<polygon fill="#272e3d" stroke="none" points="9773.69,-2562.12 9773.69,-2584.12 9952.31,-2584.12 9952.31,-2562.12 9773.69,-2562.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9773.69,-2562.12 9773.69,-2584.12 9952.31,-2584.12 9952.31,-2562.12 9773.69,-2562.12"/>
<polygon fill="#3b2c12" stroke="none" points="9774.69,-2563.12 9774.69,-2583.12 9815.35,-2583.12 9815.35,-2563.12 9774.69,-2563.12"/>
<text xml:space="preserve" text-anchor="start" x="9786.02" y="-2571.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="9819.35" y="-2571.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9852.13" y="-2569.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update subagent schedule</text>
<polygon fill="#2a3242" stroke="none" points="9773.69,-2540.12 9773.69,-2562.12 9952.31,-2562.12 9952.31,-2540.12 9773.69,-2540.12"/>
<polygon fill="none" stroke="#3f4c5f" points="9773.69,-2540.12 9773.69,-2562.12 9952.31,-2562.12 9952.31,-2540.12 9773.69,-2540.12"/>
<polygon fill="#3a181e" stroke="none" points="9774.69,-2541.12 9774.69,-2561.12 9818.58,-2561.12 9818.58,-2541.12 9774.69,-2541.12"/>
<text xml:space="preserve" text-anchor="start" x="9778.88" y="-2549.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="9822.58" y="-2549.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="9854.8" y="-2547.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete subagent schedule</text>
</g>
<!-- Carrier -->
<g id="node40" class="node">
<title>Carrier</title>
<polygon fill="#33415c" stroke="none" points="10035.93,-2661.12 10035.93,-2692.12 10178.07,-2692.12 10178.07,-2661.12 10035.93,-2661.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10035.93,-2661.12 10035.93,-2692.12 10178.07,-2692.12 10178.07,-2661.12 10035.93,-2661.12"/>
<text xml:space="preserve" text-anchor="start" x="10087.32" y="-2677.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Carrier</text>
<text xml:space="preserve" text-anchor="start" x="10093" y="-2668.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/carrier</text>
<polygon fill="#2a3242" stroke="none" points="10035.93,-2639.12 10035.93,-2661.12 10178.07,-2661.12 10178.07,-2639.12 10035.93,-2639.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10035.93,-2639.12 10035.93,-2661.12 10178.07,-2661.12 10178.07,-2639.12 10035.93,-2639.12"/>
<polygon fill="#182b40" stroke="none" points="10036.93,-2640.12 10036.93,-2660.12 10088.94,-2660.12 10088.94,-2640.12 10036.93,-2640.12"/>
<text xml:space="preserve" text-anchor="start" x="10053.69" y="-2648.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="10092.94" y="-2648.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="10131.73" y="-2646.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List carriers</text>
<polygon fill="#272e3d" stroke="none" points="10035.93,-2617.12 10035.93,-2639.12 10178.07,-2639.12 10178.07,-2617.12 10035.93,-2617.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10035.93,-2617.12 10035.93,-2639.12 10178.07,-2639.12 10178.07,-2617.12 10035.93,-2617.12"/>
<polygon fill="#143826" stroke="none" points="10036.93,-2618.12 10036.93,-2638.12 10086.42,-2638.12 10086.42,-2618.12 10036.93,-2618.12"/>
<text xml:space="preserve" text-anchor="start" x="10049.42" y="-2626.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="10090.42" y="-2626.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="10124.16" y="-2624.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create carrier</text>
<polygon fill="#2a3242" stroke="none" points="10035.93,-2595.12 10035.93,-2617.12 10178.07,-2617.12 10178.07,-2595.12 10035.93,-2595.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10035.93,-2595.12 10035.93,-2617.12 10178.07,-2617.12 10178.07,-2595.12 10035.93,-2595.12"/>
<polygon fill="#182b40" stroke="none" points="10036.93,-2596.12 10036.93,-2616.12 10077.6,-2616.12 10077.6,-2596.12 10036.93,-2596.12"/>
<text xml:space="preserve" text-anchor="start" x="10048.02" y="-2604.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="10081.6" y="-2604.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="10114.39" y="-2602.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get carrier by ID</text>
<polygon fill="#272e3d" stroke="none" points="10035.93,-2573.12 10035.93,-2595.12 10178.07,-2595.12 10178.07,-2573.12 10035.93,-2573.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10035.93,-2573.12 10035.93,-2595.12 10178.07,-2595.12 10178.07,-2573.12 10035.93,-2573.12"/>
<polygon fill="#3b2c12" stroke="none" points="10036.93,-2574.12 10036.93,-2594.12 10074.93,-2594.12 10074.93,-2574.12 10036.93,-2574.12"/>
<text xml:space="preserve" text-anchor="start" x="10046.93" y="-2582.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="10078.93" y="-2582.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="10115.27" y="-2580.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder carriers</text>
<polygon fill="#2a3242" stroke="none" points="10035.93,-2551.12 10035.93,-2573.12 10178.07,-2573.12 10178.07,-2551.12 10035.93,-2551.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10035.93,-2551.12 10035.93,-2573.12 10178.07,-2573.12 10178.07,-2551.12 10035.93,-2551.12"/>
<polygon fill="#301c44" stroke="none" points="10036.93,-2552.12 10036.93,-2572.12 10080.27,-2572.12 10080.27,-2552.12 10036.93,-2552.12"/>
<text xml:space="preserve" text-anchor="start" x="10043.1" y="-2560.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="10084.27" y="-2560.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="10122.38" y="-2558.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update carrier</text>
<polygon fill="#272e3d" stroke="none" points="10035.93,-2529.12 10035.93,-2551.12 10178.07,-2551.12 10178.07,-2529.12 10035.93,-2529.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10035.93,-2529.12 10035.93,-2551.12 10178.07,-2551.12 10178.07,-2529.12 10035.93,-2529.12"/>
<polygon fill="#3a181e" stroke="none" points="10036.93,-2530.12 10036.93,-2550.12 10083.49,-2550.12 10083.49,-2530.12 10036.93,-2530.12"/>
<text xml:space="preserve" text-anchor="start" x="10042.46" y="-2538.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="10087.49" y="-2538.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="10125.05" y="-2536.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete carrier</text>
</g>
<!-- Backup -->
<g id="node41" class="node">
<title>Backup</title>
<polygon fill="#33415c" stroke="none" points="10261.85,-2628.12 10261.85,-2659.12 10500.15,-2659.12 10500.15,-2628.12 10261.85,-2628.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10261.85,-2628.12 10261.85,-2659.12 10500.15,-2659.12 10500.15,-2628.12 10261.85,-2628.12"/>
<text xml:space="preserve" text-anchor="start" x="10359.33" y="-2644.32" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Backup</text>
<text xml:space="preserve" text-anchor="start" x="10365.24" y="-2635.02" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/backup</text>
<polygon fill="#2a3242" stroke="none" points="10261.85,-2606.12 10261.85,-2628.12 10500.15,-2628.12 10500.15,-2606.12 10261.85,-2606.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10261.85,-2606.12 10261.85,-2628.12 10500.15,-2628.12 10500.15,-2606.12 10261.85,-2606.12"/>
<polygon fill="#182b40" stroke="none" points="10262.85,-2607.12 10262.85,-2627.12 10326.45,-2627.12 10326.45,-2607.12 10262.85,-2607.12"/>
<text xml:space="preserve" text-anchor="start" x="10285.4" y="-2615.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="10330.45" y="-2615.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="10392.43" y="-2613.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List backups and service st…</text>
<polygon fill="#272e3d" stroke="none" points="10261.85,-2584.12 10261.85,-2606.12 10500.15,-2606.12 10500.15,-2584.12 10261.85,-2584.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10261.85,-2584.12 10261.85,-2606.12 10500.15,-2606.12 10500.15,-2584.12 10261.85,-2584.12"/>
<polygon fill="#182b40" stroke="none" points="10262.85,-2585.12 10262.85,-2605.12 10319.45,-2605.12 10319.45,-2585.12 10262.85,-2585.12"/>
<text xml:space="preserve" text-anchor="start" x="10281.9" y="-2593.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="10323.45" y="-2593.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/vfs</text>
<text xml:space="preserve" text-anchor="start" x="10405.33" y="-2591.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List VFS files in a backup</text>
<polygon fill="#2a3242" stroke="none" points="10261.85,-2562.12 10261.85,-2584.12 10500.15,-2584.12 10500.15,-2562.12 10261.85,-2562.12"/>
<polygon fill="none" stroke="#3f4c5f" points="10261.85,-2562.12 10261.85,-2584.12 10500.15,-2584.12 10500.15,-2562.12 10261.85,-2562.12"/>
<polygon fill="#143826" stroke="none" points="10262.85,-2563.12 10262.85,-2583.12 10300.85,-2583.12 10300.85,-2563.12 10262.85,-2563.12"/>
<text xml:space="preserve" text-anchor="start" x="10269.6" y="-2571.42" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="10304.85" y="-2571.12" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}/vfs/recover</text>
<text xml:space="preserve" text-anchor="start" x="10388.45" y="-2569.92" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Recover VFS file from a bac…</text>
</g>
</g>
</svg>