Files
dashback/api-graph.svg
2026-10-13 13:21:14 +02:00

2510 lines
289 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="7666pt" height="3241pt"
viewBox="0.00 0.00 7666.00 3241.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 3204.68)">
<title>api</title>
<polygon fill="#1e2430" stroke="none" points="-36,36 -36,-3204.68 7630.39,-3204.68 7630.39,36 -36,36"/>
<g id="clust1" class="cluster">
<title>cluster_identity</title>
<path fill="#202a3a" stroke="#3f4c5f" d="M6401,-8C6401,-8 7373,-8 7373,-8 7379,-8 7385,-14 7385,-20 7385,-20 7385,-934.6 7385,-934.6 7385,-940.6 7379,-946.6 7373,-946.6 7373,-946.6 6401,-946.6 6401,-946.6 6395,-946.6 6389,-940.6 6389,-934.6 6389,-934.6 6389,-20 6389,-20 6389,-14 6395,-8 6401,-8"/>
<text xml:space="preserve" text-anchor="middle" x="6454.52" y="-929.1" 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="M2340,-605.6C2340,-605.6 2602,-605.6 2602,-605.6 2608,-605.6 2614,-611.6 2614,-617.6 2614,-617.6 2614,-1024.6 2614,-1024.6 2614,-1030.6 2608,-1036.6 2602,-1036.6 2602,-1036.6 2340,-1036.6 2340,-1036.6 2334,-1036.6 2328,-1030.6 2328,-1024.6 2328,-1024.6 2328,-617.6 2328,-617.6 2328,-611.6 2334,-605.6 2340,-605.6"/>
<text xml:space="preserve" text-anchor="middle" x="2386.84" y="-1019.1" 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="M2553,-1099.4C2553,-1099.4 3652,-1099.4 3652,-1099.4 3658,-1099.4 3664,-1105.4 3664,-1111.4 3664,-1111.4 3664,-2104.2 3664,-2104.2 3664,-2110.2 3658,-2116.2 3652,-2116.2 3652,-2116.2 2553,-2116.2 2553,-2116.2 2547,-2116.2 2541,-2110.2 2541,-2104.2 2541,-2104.2 2541,-1111.4 2541,-1111.4 2541,-1105.4 2547,-1099.4 2553,-1099.4"/>
<text xml:space="preserve" text-anchor="middle" x="2613.62" y="-2098.7" 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="M3347,-583.6C3347,-583.6 4053,-583.6 4053,-583.6 4059,-583.6 4065,-589.6 4065,-595.6 4065,-595.6 4065,-1046.6 4065,-1046.6 4065,-1052.6 4059,-1058.6 4053,-1058.6 4053,-1058.6 3347,-1058.6 3347,-1058.6 3341,-1058.6 3335,-1052.6 3335,-1046.6 3335,-1046.6 3335,-595.6 3335,-595.6 3335,-589.6 3341,-583.6 3347,-583.6"/>
<text xml:space="preserve" text-anchor="middle" x="3418.03" y="-1041.1" 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,-1828.2C20,-1828.2 541,-1828.2 541,-1828.2 547,-1828.2 553,-1834.2 553,-1840.2 553,-1840.2 553,-2451 553,-2451 553,-2457 547,-2463 541,-2463 541,-2463 20,-2463 20,-2463 14,-2463 8,-2457 8,-2451 8,-2451 8,-1840.2 8,-1840.2 8,-1834.2 14,-1828.2 20,-1828.2"/>
<text xml:space="preserve" text-anchor="middle" x="93.96" y="-2445.5" 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,-1253.4C842,-1253.4 1675,-1253.4 1675,-1253.4 1681,-1253.4 1687,-1259.4 1687,-1265.4 1687,-1265.4 1687,-2058.2 1687,-2058.2 1687,-2064.2 1681,-2070.2 1675,-2070.2 1675,-2070.2 842,-2070.2 842,-2070.2 836,-2070.2 830,-2064.2 830,-2058.2 830,-2058.2 830,-1265.4 830,-1265.4 830,-1259.4 836,-1253.4 842,-1253.4"/>
<text xml:space="preserve" text-anchor="middle" x="900.11" y="-2052.7" 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="M2204,-1850.2C2204,-1850.2 1546,-1850.2 1546,-1850.2 1540,-1850.2 1534,-1856.2 1534,-1862.2 1534,-1862.2 1534,-2453 1534,-2453 1534,-2459 1540,-2465 1546,-2465 1546,-2465 2204,-2465 2204,-2465 2210,-2465 2216,-2459 2216,-2453 2216,-2453 2216,-1862.2 2216,-1862.2 2216,-1856.2 2210,-1850.2 2204,-1850.2"/>
<text xml:space="preserve" text-anchor="middle" x="2308.21" y="-2447.5" 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="M6070,-726.6C6070,-726.6 6224,-726.6 6224,-726.6 6230,-726.6 6236,-732.6 6236,-738.6 6236,-738.6 6236,-1496.4 6236,-1496.4 6236,-1502.4 6230,-1508.4 6224,-1508.4 6224,-1508.4 6070,-1508.4 6070,-1508.4 6064,-1508.4 6058,-1502.4 6058,-1496.4 6058,-1496.4 6058,-738.6 6058,-738.6 6058,-732.6 6064,-726.6 6070,-726.6"/>
<text xml:space="preserve" text-anchor="middle" x="6135.2" y="-1490.9" 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="M5516,-243.8C5516,-243.8 6369,-243.8 6369,-243.8 6375,-243.8 6381,-249.8 6381,-255.8 6381,-255.8 6381,-530.8 6381,-530.8 6381,-536.8 6375,-542.8 6369,-542.8 6369,-542.8 5516,-542.8 5516,-542.8 5510,-542.8 5504,-536.8 5504,-530.8 5504,-530.8 5504,-255.8 5504,-255.8 5504,-249.8 5510,-243.8 5516,-243.8"/>
<text xml:space="preserve" text-anchor="middle" x="5567.87" y="-525.3" 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="M3719,-2177C3719,-2177 3826,-2177 3826,-2177 3832,-2177 3838,-2183 3838,-2189 3838,-2189 3838,-2464 3838,-2464 3838,-2470 3832,-2476 3826,-2476 3826,-2476 3719,-2476 3719,-2476 3713,-2476 3707,-2470 3707,-2464 3707,-2464 3707,-2189 3707,-2189 3707,-2183 3713,-2177 3719,-2177"/>
<text xml:space="preserve" text-anchor="middle" x="3772.52" y="-2458.5" 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="M1586,-1775.2C1586,-1775.2 2196,-1775.2 2196,-1775.2 2202,-1775.2 2208,-1781.2 2208,-1787.2 2208,-1787.2 2208,-2124.2 2208,-2124.2 2208,-2130.2 2202,-2136.2 2196,-2136.2 2196,-2136.2 1586,-2136.2 1586,-2136.2 1580,-2136.2 1574,-2130.2 1574,-2124.2 1574,-2124.2 1574,-1787.2 1574,-1787.2 1574,-1781.2 1580,-1775.2 1586,-1775.2"/>
<text xml:space="preserve" text-anchor="middle" x="1637.45" y="-2118.7" 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="M-nan,nanC-nan,nan -nan,nan -nan,nan -nan,nan 4288,-1825.3 4288,-1825.3 4288,-1825.3 4288,-2086.1 4288,-2086.1 4288,-2086.1 -nan,nan -nan,nan -nan,nan -nan,nan -nan,nan -nan,nan 4288,-2086.1 4288,-2086.1 4288,-2086.1 4288,-1825.3 4288,-1825.3 4288,-1825.3 -nan,nan -nan,nan"/>
<text xml:space="preserve" text-anchor="middle" x="4359.77" y="-2068.6" 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="6411.41,-845.6 6411.41,-876.6 6762.59,-876.6 6762.59,-845.6 6411.41,-845.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6411.41,-845.6 6411.41,-876.6 6762.59,-876.6 6762.59,-845.6 6411.41,-845.6"/>
<text xml:space="preserve" text-anchor="start" x="6573.34" y="-861.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Auth</text>
<text xml:space="preserve" text-anchor="start" x="6576.99" y="-852.5" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/auth</text>
<polygon fill="#2a3242" stroke="none" points="6411.41,-823.6 6411.41,-845.6 6762.59,-845.6 6762.59,-823.6 6411.41,-823.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6411.41,-823.6 6411.41,-845.6 6762.59,-845.6 6762.59,-823.6 6411.41,-823.6"/>
<polygon fill="#182b40" stroke="none" points="6412.41,-824.6 6412.41,-844.6 6450.41,-844.6 6450.41,-824.6 6412.41,-824.6"/>
<text xml:space="preserve" text-anchor="start" x="6422.16" y="-832.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6454.41" y="-832.6" 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="6651.31" y="-831.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">OAuth 2.0 Authorization Ser…</text>
<polygon fill="#272e3d" stroke="none" points="6411.41,-801.6 6411.41,-823.6 6762.59,-823.6 6762.59,-801.6 6411.41,-801.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6411.41,-801.6 6411.41,-823.6 6762.59,-823.6 6762.59,-801.6 6411.41,-801.6"/>
<polygon fill="#182b40" stroke="none" points="6412.41,-802.6 6412.41,-822.6 6450.44,-822.6 6450.44,-802.6 6412.41,-802.6"/>
<text xml:space="preserve" text-anchor="start" x="6422.17" y="-810.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6454.44" y="-810.6" 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="6646.43" y="-809.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">OAuth 2.0 Protected Resourc…</text>
<polygon fill="#2a3242" stroke="none" points="6411.41,-779.6 6411.41,-801.6 6762.59,-801.6 6762.59,-779.6 6411.41,-779.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6411.41,-779.6 6411.41,-801.6 6762.59,-801.6 6762.59,-779.6 6411.41,-779.6"/>
<polygon fill="#182b40" stroke="none" points="6412.41,-780.6 6412.41,-800.6 6528.24,-800.6 6528.24,-780.6 6412.41,-780.6"/>
<text xml:space="preserve" text-anchor="start" x="6461.07" y="-788.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6532.24" y="-788.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/me</text>
<text xml:space="preserve" text-anchor="start" x="6713.13" y="-787.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Current user</text>
<polygon fill="#272e3d" stroke="none" points="6411.41,-757.6 6411.41,-779.6 6762.59,-779.6 6762.59,-757.6 6411.41,-757.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6411.41,-757.6 6411.41,-779.6 6762.59,-779.6 6762.59,-757.6 6411.41,-757.6"/>
<polygon fill="#143826" stroke="none" points="6412.41,-758.6 6412.41,-778.6 6507.9,-778.6 6507.9,-758.6 6412.41,-758.6"/>
<text xml:space="preserve" text-anchor="start" x="6447.9" y="-766.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6511.9" y="-766.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/login</text>
<text xml:space="preserve" text-anchor="start" x="6661.54" y="-765.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Login with Google ID token</text>
<polygon fill="#2a3242" stroke="none" points="6411.41,-735.6 6411.41,-757.6 6762.59,-757.6 6762.59,-735.6 6411.41,-735.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6411.41,-735.6 6411.41,-757.6 6762.59,-757.6 6762.59,-735.6 6411.41,-735.6"/>
<polygon fill="#143826" stroke="none" points="6412.41,-736.6 6412.41,-756.6 6529.54,-756.6 6529.54,-736.6 6412.41,-736.6"/>
<text xml:space="preserve" text-anchor="start" x="6458.72" y="-744.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6533.54" y="-744.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/logout</text>
<text xml:space="preserve" text-anchor="start" x="6733.12" y="-743.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Logout</text>
<polygon fill="#272e3d" stroke="none" points="6411.41,-713.6 6411.41,-735.6 6762.59,-735.6 6762.59,-713.6 6411.41,-713.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6411.41,-713.6 6411.41,-735.6 6762.59,-735.6 6762.59,-713.6 6411.41,-713.6"/>
<polygon fill="#3b2c12" stroke="none" points="6412.41,-714.6 6412.41,-734.6 6492.55,-734.6 6492.55,-714.6 6412.41,-714.6"/>
<text xml:space="preserve" text-anchor="start" x="6443.48" y="-722.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="6496.55" y="-722.6" 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="6678.88" y="-721.4" 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="6863.92,-426.8 6863.92,-461.8 7064.08,-461.8 7064.08,-426.8 6863.92,-426.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6863.92,-426.8 6863.92,-461.8 7064.08,-461.8 7064.08,-426.8 6863.92,-426.8"/>
<polygon fill="#33415c" stroke="none" points="6865.92,-455.8 6865.92,-459.8 6898.62,-459.8 6898.62,-455.8 6865.92,-455.8"/>
<polygon fill="#33415c" stroke="none" points="6898.62,-455.8 6898.62,-459.8 6931.31,-459.8 6931.31,-455.8 6898.62,-455.8"/>
<polygon fill="#33415c" stroke="none" points="6931.31,-455.8 6931.31,-459.8 6964,-459.8 6964,-455.8 6931.31,-455.8"/>
<polygon fill="#33415c" stroke="none" points="6964,-455.8 6964,-459.8 6996.69,-459.8 6996.69,-455.8 6964,-455.8"/>
<polygon fill="#33415c" stroke="none" points="6996.69,-455.8 6996.69,-459.8 7029.38,-459.8 7029.38,-455.8 6996.69,-455.8"/>
<polygon fill="#33415c" stroke="none" points="7029.38,-455.8 7029.38,-459.8 7062.08,-459.8 7062.08,-455.8 7029.38,-455.8"/>
<text xml:space="preserve" text-anchor="start" x="6936.66" y="-443" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Company</text>
<text xml:space="preserve" text-anchor="start" x="6944.49" y="-433.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/company</text>
<polygon fill="#2a3242" stroke="none" points="6863.92,-404.8 6863.92,-426.8 7064.08,-426.8 7064.08,-404.8 6863.92,-404.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6863.92,-404.8 6863.92,-426.8 7064.08,-426.8 7064.08,-404.8 6863.92,-404.8"/>
<polygon fill="#182b40" stroke="none" points="6864.92,-405.8 6864.92,-425.8 6932.26,-425.8 6932.26,-405.8 6864.92,-405.8"/>
<text xml:space="preserve" text-anchor="start" x="6889.34" y="-414.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6936.26" y="-413.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="7005.72" y="-412.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List companies</text>
<polygon fill="#272e3d" stroke="none" points="6863.92,-382.8 6863.92,-404.8 7064.08,-404.8 7064.08,-382.8 6863.92,-382.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6863.92,-382.8 6863.92,-404.8 7064.08,-404.8 7064.08,-382.8 6863.92,-382.8"/>
<polygon fill="#143826" stroke="none" points="6864.92,-383.8 6864.92,-403.8 6930.48,-403.8 6930.48,-383.8 6864.92,-383.8"/>
<text xml:space="preserve" text-anchor="start" x="6885.45" y="-392.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6934.48" y="-391.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="7000.38" y="-390.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create company</text>
<polygon fill="#2a3242" stroke="none" points="6863.92,-360.8 6863.92,-382.8 7064.08,-382.8 7064.08,-360.8 6863.92,-360.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6863.92,-360.8 6863.92,-382.8 7064.08,-382.8 7064.08,-360.8 6863.92,-360.8"/>
<polygon fill="#182b40" stroke="none" points="6864.92,-361.8 6864.92,-381.8 6914.48,-381.8 6914.48,-361.8 6864.92,-361.8"/>
<text xml:space="preserve" text-anchor="start" x="6880.45" y="-370.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6918.48" y="-369.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/history</text>
<text xml:space="preserve" text-anchor="start" x="6985.71" y="-368.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get company history</text>
<polygon fill="#272e3d" stroke="none" points="6863.92,-338.8 6863.92,-360.8 7064.08,-360.8 7064.08,-338.8 6863.92,-338.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6863.92,-338.8 6863.92,-360.8 7064.08,-360.8 7064.08,-338.8 6863.92,-338.8"/>
<polygon fill="#143826" stroke="none" points="6864.92,-339.8 6864.92,-359.8 6907.36,-359.8 6907.36,-339.8 6864.92,-339.8"/>
<text xml:space="preserve" text-anchor="start" x="6873.89" y="-348.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6911.36" y="-347.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/history</text>
<text xml:space="preserve" text-anchor="start" x="6964.37" y="-346.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add company history entry</text>
<polygon fill="#2a3242" stroke="none" points="6863.92,-316.8 6863.92,-338.8 7064.08,-338.8 7064.08,-316.8 6863.92,-316.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6863.92,-316.8 6863.92,-338.8 7064.08,-338.8 7064.08,-316.8 6863.92,-316.8"/>
<polygon fill="#143826" stroke="none" points="6864.92,-317.8 6864.92,-337.8 6902.92,-337.8 6902.92,-317.8 6864.92,-317.8"/>
<text xml:space="preserve" text-anchor="start" x="6871.67" y="-326.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6906.92" y="-325.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/import</text>
<text xml:space="preserve" text-anchor="start" x="6948.81" y="-324.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Import company catalog from…</text>
<polygon fill="#272e3d" stroke="none" points="6863.92,-294.8 6863.92,-316.8 7064.08,-316.8 7064.08,-294.8 6863.92,-294.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6863.92,-294.8 6863.92,-316.8 7064.08,-316.8 7064.08,-294.8 6863.92,-294.8"/>
<polygon fill="#3b2c12" stroke="none" points="6864.92,-295.8 6864.92,-315.8 6924.33,-315.8 6924.33,-295.8 6864.92,-295.8"/>
<text xml:space="preserve" text-anchor="start" x="6885.63" y="-304.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="6928.33" y="-303.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="6998.6" y="-302.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update company</text>
<polygon fill="#2a3242" stroke="none" points="6863.92,-272.8 6863.92,-294.8 7064.08,-294.8 7064.08,-272.8 6863.92,-272.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6863.92,-272.8 6863.92,-294.8 7064.08,-294.8 7064.08,-272.8 6863.92,-272.8"/>
<polygon fill="#3a181e" stroke="none" points="6864.92,-273.8 6864.92,-293.8 6927.56,-293.8 6927.56,-273.8 6864.92,-273.8"/>
<text xml:space="preserve" text-anchor="start" x="6878.49" y="-282.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="6931.56" y="-281.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="7001.27" y="-280.6" 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="6846.9,-810.6 6846.9,-845.6 7111.1,-845.6 7111.1,-810.6 6846.9,-810.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6846.9,-810.6 6846.9,-845.6 7111.1,-845.6 7111.1,-810.6 6846.9,-810.6"/>
<polygon fill="#33415c" stroke="none" points="6848.9,-839.6 6848.9,-843.6 7109.1,-843.6 7109.1,-839.6 6848.9,-839.6"/>
<text xml:space="preserve" text-anchor="start" x="6931.33" y="-826.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">CompanySetting</text>
<text xml:space="preserve" text-anchor="start" x="6946.23" y="-817.5" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/companysetting</text>
<polygon fill="#2a3242" stroke="none" points="6846.9,-788.6 6846.9,-810.6 7111.1,-810.6 7111.1,-788.6 6846.9,-788.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6846.9,-788.6 6846.9,-810.6 7111.1,-810.6 7111.1,-788.6 6846.9,-788.6"/>
<polygon fill="#182b40" stroke="none" points="6847.9,-789.6 6847.9,-809.6 6902.25,-809.6 6902.25,-789.6 6847.9,-789.6"/>
<text xml:space="preserve" text-anchor="start" x="6865.82" y="-797.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6906.25" y="-797.6" 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="7029.17" y="-796.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List company settings</text>
<polygon fill="#272e3d" stroke="none" points="6846.9,-766.6 6846.9,-788.6 7111.1,-788.6 7111.1,-766.6 6846.9,-766.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6846.9,-766.6 6846.9,-788.6 7111.1,-788.6 7111.1,-766.6 6846.9,-766.6"/>
<polygon fill="#182b40" stroke="none" points="6847.9,-767.6 6847.9,-787.6 6885.9,-787.6 6885.9,-767.6 6847.9,-767.6"/>
<text xml:space="preserve" text-anchor="start" x="6857.65" y="-775.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6889.9" y="-775.6" 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="7007.38" y="-774.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get company setting by key</text>
<polygon fill="#2a3242" stroke="none" points="6846.9,-744.6 6846.9,-766.6 7111.1,-766.6 7111.1,-744.6 6846.9,-744.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6846.9,-744.6 6846.9,-766.6 7111.1,-766.6 7111.1,-744.6 6846.9,-744.6"/>
<polygon fill="#3b2c12" stroke="none" points="6847.9,-745.6 6847.9,-765.6 6890.79,-765.6 6890.79,-745.6 6847.9,-745.6"/>
<text xml:space="preserve" text-anchor="start" x="6860.35" y="-753.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="6894.79" y="-753.6" 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="7022.06" y="-752.4" 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="M6855.03,-367.3C6811.25,-367.3 6843.27,-423.92 6856.03,-465.8 6905.31,-627.54 7050.08,-586.25 7119.1,-740.6 7137.79,-782.39 7151.35,-811.11 7119.1,-843.6 7099.39,-863.45 7002.01,-873.57 6982.43,-852.84"/>
<polygon fill="#ff6b6b" stroke="#ff6b6b" stroke-width="1.4" points="6984.77,-852.08 6979.81,-846.56 6980.24,-853.96 6984.77,-852.08"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6935.3" y="-553.5" 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="6668.48,-136 6668.48,-171 6843.52,-171 6843.52,-136 6668.48,-136"/>
<polygon fill="none" stroke="#3f4c5f" points="6668.48,-136 6668.48,-171 6843.52,-171 6843.52,-136 6668.48,-136"/>
<polygon fill="#33415c" stroke="none" points="6670.48,-165 6670.48,-169 6727.49,-169 6727.49,-165 6670.48,-165"/>
<polygon fill="#33415c" stroke="none" points="6727.49,-165 6727.49,-169 6784.51,-169 6784.51,-165 6727.49,-165"/>
<polygon fill="#33415c" stroke="none" points="6784.51,-165 6784.51,-169 6841.52,-169 6841.52,-165 6784.51,-165"/>
<text xml:space="preserve" text-anchor="start" x="6711" y="-152.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Customergroup</text>
<text xml:space="preserve" text-anchor="start" x="6724.74" y="-142.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/customergroup</text>
<polygon fill="#2a3242" stroke="none" points="6668.48,-114 6668.48,-136 6843.52,-136 6843.52,-114 6668.48,-114"/>
<polygon fill="none" stroke="#3f4c5f" points="6668.48,-114 6668.48,-136 6843.52,-136 6843.52,-114 6668.48,-114"/>
<polygon fill="#182b40" stroke="none" points="6669.48,-115 6669.48,-135 6721.48,-135 6721.48,-115 6669.48,-115"/>
<text xml:space="preserve" text-anchor="start" x="6686.23" y="-123.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6725.48" y="-123" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="6764.27" y="-121.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List customer groups</text>
<polygon fill="#272e3d" stroke="none" points="6668.48,-92 6668.48,-114 6843.52,-114 6843.52,-92 6668.48,-92"/>
<polygon fill="none" stroke="#3f4c5f" points="6668.48,-92 6668.48,-114 6843.52,-114 6843.52,-92 6668.48,-92"/>
<polygon fill="#143826" stroke="none" points="6669.48,-93 6669.48,-113 6718.96,-113 6718.96,-93 6669.48,-93"/>
<text xml:space="preserve" text-anchor="start" x="6681.97" y="-101.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6722.96" y="-101" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="6756.71" y="-99.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create customer group</text>
<polygon fill="#2a3242" stroke="none" points="6668.48,-70 6668.48,-92 6843.52,-92 6843.52,-70 6668.48,-70"/>
<polygon fill="none" stroke="#3f4c5f" points="6668.48,-70 6668.48,-92 6843.52,-92 6843.52,-70 6668.48,-70"/>
<polygon fill="#3b2c12" stroke="none" points="6669.48,-71 6669.48,-91 6707.48,-91 6707.48,-71 6669.48,-71"/>
<text xml:space="preserve" text-anchor="start" x="6679.48" y="-79.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="6711.48" y="-79" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="6747.82" y="-77.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder customer groups</text>
<polygon fill="#272e3d" stroke="none" points="6668.48,-48 6668.48,-70 6843.52,-70 6843.52,-48 6668.48,-48"/>
<polygon fill="none" stroke="#3f4c5f" points="6668.48,-48 6668.48,-70 6843.52,-70 6843.52,-48 6668.48,-48"/>
<polygon fill="#301c44" stroke="none" points="6669.48,-49 6669.48,-69 6712.81,-69 6712.81,-49 6669.48,-49"/>
<text xml:space="preserve" text-anchor="start" x="6675.64" y="-57.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="6716.81" y="-57" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="6754.92" y="-55.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update customer group</text>
<polygon fill="#2a3242" stroke="none" points="6668.48,-26 6668.48,-48 6843.52,-48 6843.52,-26 6668.48,-26"/>
<polygon fill="none" stroke="#3f4c5f" points="6668.48,-26 6668.48,-48 6843.52,-48 6843.52,-26 6668.48,-26"/>
<polygon fill="#3a181e" stroke="none" points="6669.48,-27 6669.48,-47 6716.04,-47 6716.04,-27 6669.48,-27"/>
<text xml:space="preserve" text-anchor="start" x="6675" y="-35.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="6720.04" y="-35" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="6757.59" y="-33.8" 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="M7072.97,-367.3C7116.75,-367.3 7096.99,-304.73 7071.97,-268.8 7003.37,-170.27 6822.52,-286.96 6813.38,-178.91"/>
<polygon fill="#66b3ff" stroke="#66b3ff" stroke-width="1.4" points="6815.83,-179.01 6813.1,-172.12 6810.94,-179.21 6815.83,-179.01"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6882.19" y="-213.7" 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="2853.2,-2011.2 2853.2,-2046.2 3046.8,-2046.2 3046.8,-2011.2 2853.2,-2011.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2853.2,-2011.2 2853.2,-2046.2 3046.8,-2046.2 3046.8,-2011.2 2853.2,-2011.2"/>
<polygon fill="#33415c" stroke="none" points="2855.2,-2040.2 2855.2,-2044.2 2886.8,-2044.2 2886.8,-2040.2 2855.2,-2040.2"/>
<polygon fill="#33415c" stroke="none" points="2886.8,-2040.2 2886.8,-2044.2 2918.4,-2044.2 2918.4,-2040.2 2886.8,-2040.2"/>
<polygon fill="#33415c" stroke="none" points="2918.4,-2040.2 2918.4,-2044.2 2950,-2044.2 2950,-2040.2 2918.4,-2040.2"/>
<polygon fill="#33415c" stroke="none" points="2950,-2040.2 2950,-2044.2 2981.6,-2044.2 2981.6,-2040.2 2950,-2040.2"/>
<polygon fill="#33415c" stroke="none" points="2981.6,-2040.2 2981.6,-2044.2 3013.2,-2044.2 3013.2,-2040.2 2981.6,-2040.2"/>
<polygon fill="#33415c" stroke="none" points="3013.2,-2040.2 3013.2,-2044.2 3044.8,-2044.2 3044.8,-2040.2 3013.2,-2040.2"/>
<text xml:space="preserve" text-anchor="start" x="2923.99" y="-2027.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Category</text>
<text xml:space="preserve" text-anchor="start" x="2931.49" y="-2018.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/category</text>
<polygon fill="#2a3242" stroke="none" points="2853.2,-1989.2 2853.2,-2011.2 3046.8,-2011.2 3046.8,-1989.2 2853.2,-1989.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2853.2,-1989.2 2853.2,-2011.2 3046.8,-2011.2 3046.8,-1989.2 2853.2,-1989.2"/>
<polygon fill="#143826" stroke="none" points="2854.2,-1990.2 2854.2,-2010.2 2918.17,-2010.2 2918.17,-1990.2 2854.2,-1990.2"/>
<text xml:space="preserve" text-anchor="start" x="2873.93" y="-1998.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2922.17" y="-1998.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="2984.88" y="-1997" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create category</text>
<polygon fill="#272e3d" stroke="none" points="2853.2,-1967.2 2853.2,-1989.2 3046.8,-1989.2 3046.8,-1967.2 2853.2,-1967.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2853.2,-1967.2 2853.2,-1989.2 3046.8,-1989.2 3046.8,-1967.2 2853.2,-1967.2"/>
<polygon fill="#182b40" stroke="none" points="2854.2,-1968.2 2854.2,-1988.2 2896.46,-1988.2 2896.46,-1968.2 2854.2,-1968.2"/>
<text xml:space="preserve" text-anchor="start" x="2866.08" y="-1976.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2900.46" y="-1976.2" 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="2974.22" y="-1975" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Articles in category</text>
<polygon fill="#2a3242" stroke="none" points="2853.2,-1945.2 2853.2,-1967.2 3046.8,-1967.2 3046.8,-1945.2 2853.2,-1945.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2853.2,-1945.2 2853.2,-1967.2 3046.8,-1967.2 3046.8,-1945.2 2853.2,-1945.2"/>
<polygon fill="#182b40" stroke="none" points="2854.2,-1946.2 2854.2,-1966.2 2892.2,-1966.2 2892.2,-1946.2 2854.2,-1946.2"/>
<text xml:space="preserve" text-anchor="start" x="2863.95" y="-1954.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2896.2" y="-1954.2" 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="2954.21" y="-1953" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Export categories as ZIP</text>
<polygon fill="#272e3d" stroke="none" points="2853.2,-1923.2 2853.2,-1945.2 3046.8,-1945.2 3046.8,-1923.2 2853.2,-1923.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2853.2,-1923.2 2853.2,-1945.2 3046.8,-1945.2 3046.8,-1923.2 2853.2,-1923.2"/>
<polygon fill="#182b40" stroke="none" points="2854.2,-1924.2 2854.2,-1944.2 2914.87,-1944.2 2914.87,-1924.2 2854.2,-1924.2"/>
<text xml:space="preserve" text-anchor="start" x="2875.28" y="-1932.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2918.87" y="-1932.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/tree</text>
<text xml:space="preserve" text-anchor="start" x="2993.33" y="-1931" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Category tree</text>
<polygon fill="#2a3242" stroke="none" points="2853.2,-1901.2 2853.2,-1923.2 3046.8,-1923.2 3046.8,-1901.2 2853.2,-1901.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2853.2,-1901.2 2853.2,-1923.2 3046.8,-1923.2 3046.8,-1901.2 2853.2,-1901.2"/>
<polygon fill="#143826" stroke="none" points="2854.2,-1902.2 2854.2,-1922.2 2897.31,-1922.2 2897.31,-1902.2 2854.2,-1902.2"/>
<text xml:space="preserve" text-anchor="start" x="2863.5" y="-1910.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2901.31" y="-1910.2" 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="2970.65" y="-1909" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add category image</text>
<polygon fill="#272e3d" stroke="none" points="2853.2,-1879.2 2853.2,-1901.2 3046.8,-1901.2 3046.8,-1879.2 2853.2,-1879.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2853.2,-1879.2 2853.2,-1901.2 3046.8,-1901.2 3046.8,-1879.2 2853.2,-1879.2"/>
<polygon fill="#3b2c12" stroke="none" points="2854.2,-1880.2 2854.2,-1900.2 2897.64,-1900.2 2897.64,-1880.2 2854.2,-1880.2"/>
<text xml:space="preserve" text-anchor="start" x="2866.92" y="-1888.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="2901.64" y="-1888.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="2948.86" y="-1887" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder sibling categories</text>
<polygon fill="#2a3242" stroke="none" points="2853.2,-1857.2 2853.2,-1879.2 3046.8,-1879.2 3046.8,-1857.2 2853.2,-1857.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2853.2,-1857.2 2853.2,-1879.2 3046.8,-1879.2 3046.8,-1857.2 2853.2,-1857.2"/>
<polygon fill="#301c44" stroke="none" points="2854.2,-1858.2 2854.2,-1878.2 2895.27,-1878.2 2895.27,-1858.2 2854.2,-1858.2"/>
<text xml:space="preserve" text-anchor="start" x="2859.24" y="-1866.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="2899.27" y="-1866.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2932.86" y="-1865" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update category (rename or …</text>
<polygon fill="#272e3d" stroke="none" points="2853.2,-1835.2 2853.2,-1857.2 3046.8,-1857.2 3046.8,-1835.2 2853.2,-1835.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2853.2,-1835.2 2853.2,-1857.2 3046.8,-1857.2 3046.8,-1835.2 2853.2,-1835.2"/>
<polygon fill="#3a181e" stroke="none" points="2854.2,-1836.2 2854.2,-1856.2 2915.24,-1856.2 2915.24,-1836.2 2854.2,-1836.2"/>
<text xml:space="preserve" text-anchor="start" x="2866.97" y="-1844.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="2919.24" y="-1844.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2985.77" y="-1843" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete category</text>
<polygon fill="#2a3242" stroke="none" points="2853.2,-1813.2 2853.2,-1835.2 3046.8,-1835.2 3046.8,-1813.2 2853.2,-1813.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2853.2,-1813.2 2853.2,-1835.2 3046.8,-1835.2 3046.8,-1813.2 2853.2,-1813.2"/>
<polygon fill="#3a181e" stroke="none" points="2854.2,-1814.2 2854.2,-1834.2 2896.68,-1834.2 2896.68,-1814.2 2854.2,-1814.2"/>
<text xml:space="preserve" text-anchor="start" x="2857.69" y="-1822.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="2900.68" y="-1822.2" 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="2961.76" y="-1821" 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="M6855.03,-367.3C6739.08,-367.3 6769.43,-499.18 6662,-542.8 6637.38,-552.8 6449.52,-549.22 6423,-550.8 6252.9,-560.94 6208.8,-553.91 6041,-583.6 5246.14,-724.25 5087.87,-950.01 4288,-1058.6 4204.21,-1069.98 2850.51,-1064.94 2765.97,-1066.6 2762.63,-1066.67 1807.32,-1097 1805,-1099.4 1711.26,-1196.39 1719.03,-1602.46 1805,-1706.4 1893.8,-1813.77 2963.33,-1704.09 3054.8,-1809.2 3123.36,-1887.99 3127.21,-1968.93 3054.8,-2044.2 3049.7,-2049.5 3040.55,-2053.13 3034.63,-2052.04"/>
<polygon fill="#c79bff" stroke="#c79bff" stroke-width="1.4" points="3036.69,-2050.68 3030.35,-2046.84 3032.9,-2053.8 3036.69,-2050.68"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2798.48" y="-1069.3" 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="7195.24,-801.6 7195.24,-832.6 7362.76,-832.6 7362.76,-801.6 7195.24,-801.6"/>
<polygon fill="none" stroke="#3f4c5f" points="7195.24,-801.6 7195.24,-832.6 7362.76,-832.6 7362.76,-801.6 7195.24,-801.6"/>
<text xml:space="preserve" text-anchor="start" x="7256.33" y="-817.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Number</text>
<text xml:space="preserve" text-anchor="start" x="7262.49" y="-808.5" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/number</text>
<polygon fill="#2a3242" stroke="none" points="7195.24,-779.6 7195.24,-801.6 7362.76,-801.6 7362.76,-779.6 7195.24,-779.6"/>
<polygon fill="none" stroke="#3f4c5f" points="7195.24,-779.6 7195.24,-801.6 7362.76,-801.6 7362.76,-779.6 7195.24,-779.6"/>
<polygon fill="#182b40" stroke="none" points="7196.24,-780.6 7196.24,-800.6 7242.92,-800.6 7242.92,-780.6 7196.24,-780.6"/>
<text xml:space="preserve" text-anchor="start" x="7210.33" y="-788.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="7246.92" y="-788.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="7275.04" y="-787.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List number sequences</text>
<polygon fill="#272e3d" stroke="none" points="7195.24,-757.6 7195.24,-779.6 7362.76,-779.6 7362.76,-757.6 7195.24,-757.6"/>
<polygon fill="none" stroke="#3f4c5f" points="7195.24,-757.6 7195.24,-779.6 7362.76,-779.6 7362.76,-757.6 7195.24,-757.6"/>
<polygon fill="#301c44" stroke="none" points="7196.24,-758.6 7196.24,-778.6 7234.24,-778.6 7234.24,-758.6 7196.24,-758.6"/>
<text xml:space="preserve" text-anchor="start" x="7199.75" y="-766.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="7238.24" y="-766.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="7265.69" y="-765.4" 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="M7194.24,-790.6C7100.44,-790.6 7219.42,-649.84 7153,-583.6 7117.07,-547.77 7073.21,-600.78 7040.97,-561.6 7037.92,-557.89 7040.85,-555.6 7040.97,-550.8 7041.95,-513.89 7045.17,-502.59 7045.67,-469.66"/>
<polygon fill="#6bdf9a" stroke="#6bdf9a" stroke-width="1.4" points="7048.11,-469.94 7045.71,-462.92 7043.21,-469.9 7048.11,-469.94"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="7067.99" y="-553.5" 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="2350.32,-931.6 2350.32,-966.6 2591.68,-966.6 2591.68,-931.6 2350.32,-931.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-931.6 2350.32,-966.6 2591.68,-966.6 2591.68,-931.6 2350.32,-931.6"/>
<polygon fill="#33415c" stroke="none" points="2352.32,-960.6 2352.32,-964.6 2411.66,-964.6 2411.66,-960.6 2352.32,-960.6"/>
<polygon fill="#33415c" stroke="none" points="2411.66,-960.6 2411.66,-964.6 2471,-964.6 2471,-960.6 2411.66,-960.6"/>
<polygon fill="#33415c" stroke="none" points="2471,-960.6 2471,-964.6 2530.34,-964.6 2530.34,-960.6 2471,-960.6"/>
<polygon fill="#33415c" stroke="none" points="2530.34,-960.6 2530.34,-964.6 2589.68,-964.6 2589.68,-960.6 2530.34,-960.6"/>
<text xml:space="preserve" text-anchor="start" x="2454.33" y="-947.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Entity</text>
<text xml:space="preserve" text-anchor="start" x="2458.99" y="-938.5" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/entity</text>
<polygon fill="#2a3242" stroke="none" points="2350.32,-909.6 2350.32,-931.6 2591.68,-931.6 2591.68,-909.6 2350.32,-909.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-909.6 2350.32,-931.6 2591.68,-931.6 2591.68,-909.6 2350.32,-909.6"/>
<polygon fill="#182b40" stroke="none" points="2351.32,-910.6 2351.32,-930.6 2436.84,-930.6 2436.84,-910.6 2351.32,-910.6"/>
<text xml:space="preserve" text-anchor="start" x="2384.83" y="-918.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2440.84" y="-918.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="2546.66" y="-917.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List entities</text>
<polygon fill="#272e3d" stroke="none" points="2350.32,-887.6 2350.32,-909.6 2591.68,-909.6 2591.68,-887.6 2350.32,-887.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-887.6 2350.32,-909.6 2591.68,-909.6 2591.68,-887.6 2350.32,-887.6"/>
<polygon fill="#143826" stroke="none" points="2351.32,-888.6 2351.32,-908.6 2435.06,-908.6 2435.06,-888.6 2351.32,-888.6"/>
<text xml:space="preserve" text-anchor="start" x="2380.94" y="-896.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2439.06" y="-896.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="2541.32" y="-895.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create entity</text>
<polygon fill="#2a3242" stroke="none" points="2350.32,-865.6 2350.32,-887.6 2591.68,-887.6 2591.68,-865.6 2350.32,-865.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-865.6 2350.32,-887.6 2591.68,-887.6 2591.68,-865.6 2350.32,-865.6"/>
<polygon fill="#182b40" stroke="none" points="2351.32,-866.6 2351.32,-886.6 2397.72,-886.6 2397.72,-866.6 2351.32,-866.6"/>
<text xml:space="preserve" text-anchor="start" x="2365.27" y="-874.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2401.72" y="-874.6" 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="2513.75" y="-873.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List entity addresses</text>
<polygon fill="#272e3d" stroke="none" points="2350.32,-843.6 2350.32,-865.6 2591.68,-865.6 2591.68,-843.6 2350.32,-843.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-843.6 2350.32,-865.6 2591.68,-865.6 2591.68,-843.6 2350.32,-843.6"/>
<polygon fill="#182b40" stroke="none" points="2351.32,-844.6 2351.32,-864.6 2401.02,-864.6 2401.02,-844.6 2351.32,-844.6"/>
<text xml:space="preserve" text-anchor="start" x="2366.92" y="-852.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2405.02" y="-852.6" 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="2520.87" y="-851.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List entity contacts</text>
<polygon fill="#2a3242" stroke="none" points="2350.32,-821.6 2350.32,-843.6 2591.68,-843.6 2591.68,-821.6 2350.32,-821.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-821.6 2350.32,-843.6 2591.68,-843.6 2591.68,-821.6 2350.32,-821.6"/>
<polygon fill="#182b40" stroke="none" points="2351.32,-822.6 2351.32,-842.6 2433.21,-842.6 2433.21,-822.6 2351.32,-822.6"/>
<text xml:space="preserve" text-anchor="start" x="2383.02" y="-830.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2437.21" y="-830.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2552.44" y="-829.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get entity</text>
<polygon fill="#272e3d" stroke="none" points="2350.32,-799.6 2350.32,-821.6 2591.68,-821.6 2591.68,-799.6 2350.32,-799.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-799.6 2350.32,-821.6 2591.68,-821.6 2591.68,-799.6 2350.32,-799.6"/>
<polygon fill="#182b40" stroke="none" points="2351.32,-800.6 2351.32,-820.6 2396.65,-820.6 2396.65,-800.6 2351.32,-800.6"/>
<text xml:space="preserve" text-anchor="start" x="2364.73" y="-808.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2400.65" y="-808.6" 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="2486.63" y="-807.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Peek next customer number</text>
<polygon fill="#2a3242" stroke="none" points="2350.32,-777.6 2350.32,-799.6 2591.68,-799.6 2591.68,-777.6 2350.32,-777.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-777.6 2350.32,-799.6 2591.68,-799.6 2591.68,-777.6 2350.32,-777.6"/>
<polygon fill="#143826" stroke="none" points="2351.32,-778.6 2351.32,-798.6 2396.68,-798.6 2396.68,-778.6 2351.32,-778.6"/>
<text xml:space="preserve" text-anchor="start" x="2361.75" y="-786.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2400.68" y="-786.6" 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="2510.64" y="-785.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create entity address</text>
<polygon fill="#272e3d" stroke="none" points="2350.32,-755.6 2350.32,-777.6 2591.68,-777.6 2591.68,-755.6 2350.32,-755.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-755.6 2350.32,-777.6 2591.68,-777.6 2591.68,-755.6 2350.32,-755.6"/>
<polygon fill="#143826" stroke="none" points="2351.32,-756.6 2351.32,-776.6 2398.5,-776.6 2398.5,-756.6 2351.32,-756.6"/>
<text xml:space="preserve" text-anchor="start" x="2362.66" y="-764.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2402.5" y="-764.6" 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="2513.31" y="-763.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create entity contact</text>
<polygon fill="#2a3242" stroke="none" points="2350.32,-733.6 2350.32,-755.6 2591.68,-755.6 2591.68,-733.6 2350.32,-733.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-733.6 2350.32,-755.6 2591.68,-755.6 2591.68,-733.6 2350.32,-733.6"/>
<polygon fill="#301c44" stroke="none" points="2351.32,-734.6 2351.32,-754.6 2389.6,-754.6 2389.6,-734.6 2351.32,-734.6"/>
<text xml:space="preserve" text-anchor="start" x="2354.96" y="-742.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="2393.6" y="-742.6" 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="2508.85" y="-741.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update entity address</text>
<polygon fill="#272e3d" stroke="none" points="2350.32,-711.6 2350.32,-733.6 2591.68,-733.6 2591.68,-711.6 2350.32,-711.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-711.6 2350.32,-733.6 2591.68,-733.6 2591.68,-711.6 2350.32,-711.6"/>
<polygon fill="#301c44" stroke="none" points="2351.32,-712.6 2351.32,-732.6 2391.42,-732.6 2391.42,-712.6 2351.32,-712.6"/>
<text xml:space="preserve" text-anchor="start" x="2355.87" y="-720.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="2395.42" y="-720.6" 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="2511.52" y="-719.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update entity contact</text>
<polygon fill="#2a3242" stroke="none" points="2350.32,-689.6 2350.32,-711.6 2591.68,-711.6 2591.68,-689.6 2350.32,-689.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-689.6 2350.32,-711.6 2591.68,-711.6 2591.68,-689.6 2350.32,-689.6"/>
<polygon fill="#301c44" stroke="none" points="2351.32,-690.6 2351.32,-710.6 2428.91,-710.6 2428.91,-690.6 2351.32,-690.6"/>
<text xml:space="preserve" text-anchor="start" x="2374.62" y="-698.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="2432.91" y="-698.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2539.54" y="-697.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update entity</text>
<polygon fill="#272e3d" stroke="none" points="2350.32,-667.6 2350.32,-689.6 2591.68,-689.6 2591.68,-667.6 2350.32,-667.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-667.6 2350.32,-689.6 2591.68,-689.6 2591.68,-667.6 2350.32,-667.6"/>
<polygon fill="#3a181e" stroke="none" points="2351.32,-668.6 2351.32,-688.6 2392.83,-688.6 2392.83,-668.6 2351.32,-668.6"/>
<text xml:space="preserve" text-anchor="start" x="2354.32" y="-676.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="2396.83" y="-676.6" 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="2511.53" y="-675.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete entity address</text>
<polygon fill="#2a3242" stroke="none" points="2350.32,-645.6 2350.32,-667.6 2591.68,-667.6 2591.68,-645.6 2350.32,-645.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-645.6 2350.32,-667.6 2591.68,-667.6 2591.68,-645.6 2350.32,-645.6"/>
<polygon fill="#3a181e" stroke="none" points="2351.32,-646.6 2351.32,-666.6 2394.65,-666.6 2394.65,-646.6 2351.32,-646.6"/>
<text xml:space="preserve" text-anchor="start" x="2355.23" y="-654.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="2398.65" y="-654.6" 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="2514.19" y="-653.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete entity contact</text>
<polygon fill="#272e3d" stroke="none" points="2350.32,-623.6 2350.32,-645.6 2591.68,-645.6 2591.68,-623.6 2350.32,-623.6"/>
<polygon fill="none" stroke="#3f4c5f" points="2350.32,-623.6 2350.32,-645.6 2591.68,-645.6 2591.68,-623.6 2350.32,-623.6"/>
<polygon fill="#3a181e" stroke="none" points="2351.32,-624.6 2351.32,-644.6 2432.14,-644.6 2432.14,-624.6 2351.32,-624.6"/>
<text xml:space="preserve" text-anchor="start" x="2373.98" y="-632.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="2436.14" y="-632.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2542.21" y="-631.4" 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="M2592.68,-898.6C2841.68,-898.6 2823.87,-673.7 3056,-583.6 4041.22,-201.2 4357.94,-349.6 5409.46,-243.8 5478.21,-236.88 6610.16,-241.39 6694.07,-177.68"/>
<polygon fill="#56d68a" stroke="#56d68a" stroke-width="1.4" points="6696.13,-179 6697.84,-171.78 6692.01,-176.36 6696.13,-179"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="5448.23" y="-364.6" 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="3255.6,-1667.4 3255.6,-1702.4 3540.4,-1702.4 3540.4,-1667.4 3255.6,-1667.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1667.4 3255.6,-1702.4 3540.4,-1702.4 3540.4,-1667.4 3255.6,-1667.4"/>
<polygon fill="#33415c" stroke="none" points="3257.6,-1696.4 3257.6,-1700.4 3279.2,-1700.4 3279.2,-1696.4 3257.6,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3279.2,-1696.4 3279.2,-1700.4 3300.8,-1700.4 3300.8,-1696.4 3279.2,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3300.8,-1696.4 3300.8,-1700.4 3322.4,-1700.4 3322.4,-1696.4 3300.8,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3322.4,-1696.4 3322.4,-1700.4 3344,-1700.4 3344,-1696.4 3322.4,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3344,-1696.4 3344,-1700.4 3365.6,-1700.4 3365.6,-1696.4 3344,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3365.6,-1696.4 3365.6,-1700.4 3387.2,-1700.4 3387.2,-1696.4 3365.6,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3387.2,-1696.4 3387.2,-1700.4 3408.8,-1700.4 3408.8,-1696.4 3387.2,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3408.8,-1696.4 3408.8,-1700.4 3430.4,-1700.4 3430.4,-1696.4 3408.8,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3430.4,-1696.4 3430.4,-1700.4 3452,-1700.4 3452,-1696.4 3430.4,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3452,-1696.4 3452,-1700.4 3473.6,-1700.4 3473.6,-1696.4 3452,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3473.6,-1696.4 3473.6,-1700.4 3495.2,-1700.4 3495.2,-1696.4 3473.6,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3495.2,-1696.4 3495.2,-1700.4 3516.8,-1700.4 3516.8,-1696.4 3495.2,-1696.4"/>
<polygon fill="#33415c" stroke="none" points="3516.8,-1696.4 3516.8,-1700.4 3538.4,-1700.4 3538.4,-1696.4 3516.8,-1696.4"/>
<text xml:space="preserve" text-anchor="start" x="3379.33" y="-1683.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Article</text>
<text xml:space="preserve" text-anchor="start" x="3384.75" y="-1674.3" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/article</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1645.4 3255.6,-1667.4 3540.4,-1667.4 3540.4,-1645.4 3255.6,-1645.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1645.4 3255.6,-1667.4 3540.4,-1667.4 3540.4,-1645.4 3255.6,-1645.4"/>
<polygon fill="#143826" stroke="none" points="3256.6,-1646.4 3256.6,-1666.4 3340.3,-1666.4 3340.3,-1646.4 3256.6,-1646.4"/>
<text xml:space="preserve" text-anchor="start" x="3286.2" y="-1654.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3344.3" y="-1654.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3446.47" y="-1653.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create article in category</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1623.4 3255.6,-1645.4 3540.4,-1645.4 3540.4,-1623.4 3255.6,-1623.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1623.4 3255.6,-1645.4 3540.4,-1645.4 3540.4,-1623.4 3255.6,-1623.4"/>
<polygon fill="#182b40" stroke="none" points="3256.6,-1624.4 3256.6,-1644.4 3339.67,-1644.4 3339.67,-1624.4 3256.6,-1624.4"/>
<text xml:space="preserve" text-anchor="start" x="3288.88" y="-1632.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3343.67" y="-1632.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}</text>
<text xml:space="preserve" text-anchor="start" x="3469.6" y="-1631.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get article by SKU</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1601.4 3255.6,-1623.4 3540.4,-1623.4 3540.4,-1601.4 3255.6,-1601.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1601.4 3255.6,-1623.4 3540.4,-1623.4 3540.4,-1601.4 3255.6,-1601.4"/>
<polygon fill="#182b40" stroke="none" points="3256.6,-1602.4 3256.6,-1622.4 3311.95,-1622.4 3311.95,-1602.4 3256.6,-1602.4"/>
<text xml:space="preserve" text-anchor="start" x="3275.03" y="-1610.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3315.95" y="-1610.4" 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="3433.14" y="-1609.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get Stückliste (bundle item…</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1579.4 3255.6,-1601.4 3540.4,-1601.4 3540.4,-1579.4 3255.6,-1579.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1579.4 3255.6,-1601.4 3540.4,-1601.4 3540.4,-1579.4 3255.6,-1579.4"/>
<polygon fill="#182b40" stroke="none" points="3256.6,-1580.4 3256.6,-1600.4 3317.03,-1600.4 3317.03,-1580.4 3256.6,-1580.4"/>
<text xml:space="preserve" text-anchor="start" x="3277.57" y="-1588.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3321.03" y="-1588.4" 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="3443.36" y="-1587.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List child articles of a pa…</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1557.4 3255.6,-1579.4 3540.4,-1579.4 3540.4,-1557.4 3255.6,-1557.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1557.4 3255.6,-1579.4 3540.4,-1579.4 3540.4,-1557.4 3255.6,-1557.4"/>
<polygon fill="#182b40" stroke="none" points="3256.6,-1558.4 3256.6,-1578.4 3319.03,-1578.4 3319.03,-1558.4 3256.6,-1558.4"/>
<text xml:space="preserve" text-anchor="start" x="3278.57" y="-1566.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3323.03" y="-1566.4" 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="3443.81" y="-1565.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get article history by SKU</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1535.4 3255.6,-1557.4 3540.4,-1557.4 3540.4,-1535.4 3255.6,-1535.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1535.4 3255.6,-1557.4 3540.4,-1557.4 3540.4,-1535.4 3255.6,-1535.4"/>
<polygon fill="#182b40" stroke="none" points="3256.6,-1536.4 3256.6,-1556.4 3312.55,-1556.4 3312.55,-1536.4 3256.6,-1536.4"/>
<text xml:space="preserve" text-anchor="start" x="3275.33" y="-1544.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3316.55" y="-1544.4" 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="3441.58" y="-1543.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get options list for an art…</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1513.4 3255.6,-1535.4 3540.4,-1535.4 3540.4,-1513.4 3255.6,-1513.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1513.4 3255.6,-1535.4 3540.4,-1535.4 3540.4,-1513.4 3255.6,-1513.4"/>
<polygon fill="#182b40" stroke="none" points="3256.6,-1514.4 3256.6,-1534.4 3328.86,-1534.4 3328.86,-1514.4 3256.6,-1514.4"/>
<text xml:space="preserve" text-anchor="start" x="3283.48" y="-1522.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3332.86" y="-1522.4" 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="3459.38" y="-1521.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Export articles as ZIP</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1491.4 3255.6,-1513.4 3540.4,-1513.4 3540.4,-1491.4 3255.6,-1491.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1491.4 3255.6,-1513.4 3540.4,-1513.4 3540.4,-1491.4 3255.6,-1491.4"/>
<polygon fill="#143826" stroke="none" points="3256.6,-1492.4 3256.6,-1512.4 3312.28,-1512.4 3312.28,-1492.4 3256.6,-1492.4"/>
<text xml:space="preserve" text-anchor="start" x="3272.19" y="-1500.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3316.28" y="-1500.4" 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="3429.11" y="-1499.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create and attach a new chi…</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1469.4 3255.6,-1491.4 3540.4,-1491.4 3540.4,-1469.4 3255.6,-1469.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1469.4 3255.6,-1491.4 3540.4,-1491.4 3540.4,-1469.4 3255.6,-1469.4"/>
<polygon fill="#143826" stroke="none" points="3256.6,-1470.4 3256.6,-1490.4 3330.44,-1490.4 3330.44,-1470.4 3256.6,-1470.4"/>
<text xml:space="preserve" text-anchor="start" x="3281.27" y="-1478.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3334.44" y="-1478.4" 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="3473.59" y="-1477.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add article image</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1447.4 3255.6,-1469.4 3540.4,-1469.4 3540.4,-1447.4 3255.6,-1447.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1447.4 3255.6,-1469.4 3540.4,-1469.4 3540.4,-1447.4 3255.6,-1447.4"/>
<polygon fill="#143826" stroke="none" points="3256.6,-1448.4 3256.6,-1468.4 3314.62,-1468.4 3314.62,-1448.4 3256.6,-1448.4"/>
<text xml:space="preserve" text-anchor="start" x="3273.36" y="-1456.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3318.62" y="-1456.4" 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="3427.78" y="-1455.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Toggle parent mode for an a…</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1425.4 3255.6,-1447.4 3540.4,-1447.4 3540.4,-1425.4 3255.6,-1425.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1425.4 3255.6,-1447.4 3540.4,-1447.4 3540.4,-1425.4 3255.6,-1425.4"/>
<polygon fill="#143826" stroke="none" points="3256.6,-1426.4 3256.6,-1446.4 3333.56,-1446.4 3333.56,-1426.4 3256.6,-1426.4"/>
<text xml:space="preserve" text-anchor="start" x="3282.83" y="-1434.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3337.56" y="-1434.4" 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="3476.26" y="-1433.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Print article label</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1403.4 3255.6,-1425.4 3540.4,-1425.4 3540.4,-1403.4 3255.6,-1403.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1403.4 3255.6,-1425.4 3540.4,-1425.4 3540.4,-1403.4 3255.6,-1403.4"/>
<polygon fill="#3b2c12" stroke="none" points="3256.6,-1404.4 3256.6,-1424.4 3312.25,-1424.4 3312.25,-1404.4 3256.6,-1404.4"/>
<text xml:space="preserve" text-anchor="start" x="3275.42" y="-1412.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3316.25" y="-1412.4" 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="3434.02" y="-1411.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set Stückliste (bundle item…</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1381.4 3255.6,-1403.4 3540.4,-1403.4 3540.4,-1381.4 3255.6,-1381.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1381.4 3255.6,-1403.4 3540.4,-1403.4 3540.4,-1381.4 3255.6,-1381.4"/>
<polygon fill="#3b2c12" stroke="none" points="3256.6,-1382.4 3256.6,-1402.4 3319.4,-1402.4 3319.4,-1382.4 3256.6,-1382.4"/>
<text xml:space="preserve" text-anchor="start" x="3279" y="-1390.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3323.4" y="-1390.4" 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="3439.36" y="-1389.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set or clear article brand …</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1359.4 3255.6,-1381.4 3540.4,-1381.4 3540.4,-1359.4 3255.6,-1359.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1359.4 3255.6,-1381.4 3540.4,-1381.4 3540.4,-1359.4 3255.6,-1359.4"/>
<polygon fill="#3b2c12" stroke="none" points="3256.6,-1360.4 3256.6,-1380.4 3310.36,-1380.4 3310.36,-1360.4 3256.6,-1360.4"/>
<text xml:space="preserve" text-anchor="start" x="3274.48" y="-1368.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3314.36" y="-1368.4" 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="3434.46" y="-1367.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Replace article categories …</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1337.4 3255.6,-1359.4 3540.4,-1359.4 3540.4,-1337.4 3255.6,-1337.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1337.4 3255.6,-1359.4 3540.4,-1359.4 3540.4,-1337.4 3255.6,-1337.4"/>
<polygon fill="#3b2c12" stroke="none" points="3256.6,-1338.4 3256.6,-1358.4 3315.84,-1358.4 3315.84,-1338.4 3256.6,-1338.4"/>
<text xml:space="preserve" text-anchor="start" x="3277.22" y="-1346.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3319.84" y="-1346.4" 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="3439.8" y="-1345.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Attach an existing article …</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1315.4 3255.6,-1337.4 3540.4,-1337.4 3540.4,-1315.4 3255.6,-1315.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1315.4 3255.6,-1337.4 3540.4,-1337.4 3540.4,-1315.4 3255.6,-1315.4"/>
<polygon fill="#3b2c12" stroke="none" points="3256.6,-1316.4 3256.6,-1336.4 3318.1,-1336.4 3318.1,-1316.4 3256.6,-1316.4"/>
<text xml:space="preserve" text-anchor="start" x="3278.35" y="-1324.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3322.1" y="-1324.4" 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="3430.47" y="-1323.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Replace article EANs by SKU</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1293.4 3255.6,-1315.4 3540.4,-1315.4 3540.4,-1293.4 3255.6,-1293.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1293.4 3255.6,-1315.4 3540.4,-1315.4 3540.4,-1293.4 3255.6,-1293.4"/>
<polygon fill="#3b2c12" stroke="none" points="3256.6,-1294.4 3256.6,-1314.4 3312.92,-1314.4 3312.92,-1294.4 3256.6,-1294.4"/>
<text xml:space="preserve" text-anchor="start" x="3275.76" y="-1302.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3316.92" y="-1302.4" 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="3454.92" y="-1301.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder article images</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1271.4 3255.6,-1293.4 3540.4,-1293.4 3540.4,-1271.4 3255.6,-1271.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1271.4 3255.6,-1293.4 3540.4,-1293.4 3540.4,-1271.4 3255.6,-1271.4"/>
<polygon fill="#3b2c12" stroke="none" points="3256.6,-1272.4 3256.6,-1292.4 3312.85,-1292.4 3312.85,-1272.4 3256.6,-1272.4"/>
<text xml:space="preserve" text-anchor="start" x="3275.72" y="-1280.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3316.85" y="-1280.4" 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="3442.47" y="-1279.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set options list for an art…</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1249.4 3255.6,-1271.4 3540.4,-1271.4 3540.4,-1249.4 3255.6,-1249.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1249.4 3255.6,-1271.4 3540.4,-1271.4 3540.4,-1249.4 3255.6,-1249.4"/>
<polygon fill="#3b2c12" stroke="none" points="3256.6,-1250.4 3256.6,-1270.4 3313.21,-1270.4 3313.21,-1250.4 3256.6,-1250.4"/>
<text xml:space="preserve" text-anchor="start" x="3275.91" y="-1258.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3317.21" y="-1258.4" 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="3422.47" y="-1257.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Replace POS prices by SKU (…</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1227.4 3255.6,-1249.4 3540.4,-1249.4 3540.4,-1227.4 3255.6,-1227.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1227.4 3255.6,-1249.4 3540.4,-1249.4 3540.4,-1227.4 3255.6,-1227.4"/>
<polygon fill="#3b2c12" stroke="none" points="3256.6,-1228.4 3256.6,-1248.4 3310.28,-1248.4 3310.28,-1228.4 3256.6,-1228.4"/>
<text xml:space="preserve" text-anchor="start" x="3274.44" y="-1236.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3314.28" y="-1236.4" 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="3439.81" y="-1235.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set article track_stock fla…</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1205.4 3255.6,-1227.4 3540.4,-1227.4 3540.4,-1205.4 3255.6,-1205.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1205.4 3255.6,-1227.4 3540.4,-1227.4 3540.4,-1205.4 3255.6,-1205.4"/>
<polygon fill="#3b2c12" stroke="none" points="3256.6,-1206.4 3256.6,-1226.4 3320.03,-1226.4 3320.03,-1206.4 3256.6,-1206.4"/>
<text xml:space="preserve" text-anchor="start" x="3279.32" y="-1214.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3324.03" y="-1214.4" 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="3445.14" y="-1213.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Set article weight by SKU</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1183.4 3255.6,-1205.4 3540.4,-1205.4 3540.4,-1183.4 3255.6,-1183.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1183.4 3255.6,-1205.4 3540.4,-1205.4 3540.4,-1183.4 3255.6,-1183.4"/>
<polygon fill="#301c44" stroke="none" points="3256.6,-1184.4 3256.6,-1204.4 3335.37,-1204.4 3335.37,-1184.4 3256.6,-1184.4"/>
<text xml:space="preserve" text-anchor="start" x="3280.49" y="-1192.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="3339.37" y="-1192.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}</text>
<text xml:space="preserve" text-anchor="start" x="3456.7" y="-1191.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update article by SKU</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1161.4 3255.6,-1183.4 3540.4,-1183.4 3540.4,-1161.4 3255.6,-1161.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1161.4 3255.6,-1183.4 3540.4,-1183.4 3540.4,-1161.4 3255.6,-1161.4"/>
<polygon fill="#3a181e" stroke="none" points="3256.6,-1162.4 3256.6,-1182.4 3338.59,-1182.4 3338.59,-1162.4 3256.6,-1162.4"/>
<text xml:space="preserve" text-anchor="start" x="3279.85" y="-1170.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3342.59" y="-1170.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{sku}</text>
<text xml:space="preserve" text-anchor="start" x="3459.37" y="-1169.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete article by SKU</text>
<polygon fill="#272e3d" stroke="none" points="3255.6,-1139.4 3255.6,-1161.4 3540.4,-1161.4 3540.4,-1139.4 3255.6,-1139.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1139.4 3255.6,-1161.4 3540.4,-1161.4 3540.4,-1139.4 3255.6,-1139.4"/>
<polygon fill="#3a181e" stroke="none" points="3256.6,-1140.4 3256.6,-1160.4 3298.1,-1160.4 3298.1,-1140.4 3256.6,-1140.4"/>
<text xml:space="preserve" text-anchor="start" x="3259.6" y="-1148.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3302.1" y="-1148.4" 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="3431.81" y="-1147.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Remove a child article from…</text>
<polygon fill="#2a3242" stroke="none" points="3255.6,-1117.4 3255.6,-1139.4 3540.4,-1139.4 3540.4,-1117.4 3255.6,-1117.4"/>
<polygon fill="none" stroke="#3f4c5f" points="3255.6,-1117.4 3255.6,-1139.4 3540.4,-1139.4 3540.4,-1117.4 3255.6,-1117.4"/>
<polygon fill="#3a181e" stroke="none" points="3256.6,-1118.4 3256.6,-1138.4 3313.14,-1138.4 3313.14,-1118.4 3256.6,-1118.4"/>
<text xml:space="preserve" text-anchor="start" x="3267.12" y="-1126.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3317.14" y="-1126.4" 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="3464.7" y="-1125.2" 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="M3541.4,-1260.4C3606.73,-1260.4 3586.11,-1160.08 3540.4,-1113.4 3439.81,-1010.68 2347.23,-1180.46 2247,-1077.4 2243.65,-1073.96 2243.64,-1070.03 2247,-1066.6 2261.93,-1051.36 2610.7,-1065.17 2631,-1058.6 2984.19,-944.34 2964.43,-696.66 3318,-583.6 3441.57,-544.09 5523.27,-552.41 5652.99,-550.8 5673.69,-550.54 6378.31,-549.16 6398,-542.8 6617.42,-471.92 6609.48,-333.28 6822,-243.8 6871.57,-222.93 6906.6,-263.14 6941,-221.8 6993.59,-158.6 6773.38,-248.25 6756.96,-178.76"/>
<polygon fill="#5cd6d6" stroke="#5cd6d6" stroke-width="1.4" points="6759.43,-178.8 6756.23,-172.11 6754.56,-179.33 6759.43,-178.8"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="5670" y="-553.5" 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="M3540.4,-1601.4C3571.07,-1516.93 3616.4,-1516.93 3616.4,-1650.9 3616.4,-1781.21 3499.09,-1784.77 3425.68,-1707.14"/>
<polygon fill="#58d18a" stroke="#58d18a" stroke-width="1.4" points="3427.53,-1705.53 3421.02,-1701.97 3423.89,-1708.81 3427.53,-1705.53"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3658.42" y="-1407.2" 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="M3254.6,-1656.4C3213.18,-1656.4 2876.91,-1761.1 2845.2,-1809.2 2816.46,-1852.8 2808.6,-2006.95 2845.2,-2044.2 2860.57,-2059.84 2891.91,-2068.18 2900.43,-2054.02"/>
<polygon fill="#6bdf9a" stroke="#6bdf9a" stroke-width="1.4" points="2902.8,-2054.64 2902.09,-2047.26 2898.04,-2053.47 2902.8,-2054.64"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2994.42" y="-1745.1" 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="2563.07,-1978.2 2563.07,-2013.2 2768.93,-2013.2 2768.93,-1978.2 2563.07,-1978.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2563.07,-1978.2 2563.07,-2013.2 2768.93,-2013.2 2768.93,-1978.2 2563.07,-1978.2"/>
<polygon fill="#33415c" stroke="none" points="2565.07,-2007.2 2565.07,-2011.2 2766.93,-2011.2 2766.93,-2007.2 2565.07,-2007.2"/>
<text xml:space="preserve" text-anchor="start" x="2648.67" y="-1994.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Brand</text>
<text xml:space="preserve" text-anchor="start" x="2653.24" y="-1985.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/brand</text>
<polygon fill="#2a3242" stroke="none" points="2563.07,-1956.2 2563.07,-1978.2 2768.93,-1978.2 2768.93,-1956.2 2563.07,-1956.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2563.07,-1956.2 2563.07,-1978.2 2768.93,-1978.2 2768.93,-1956.2 2563.07,-1956.2"/>
<polygon fill="#182b40" stroke="none" points="2564.07,-1957.2 2564.07,-1977.2 2638.05,-1977.2 2638.05,-1957.2 2564.07,-1957.2"/>
<text xml:space="preserve" text-anchor="start" x="2591.81" y="-1965.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2642.05" y="-1965.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="2724.79" y="-1964" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List brands</text>
<polygon fill="#272e3d" stroke="none" points="2563.07,-1934.2 2563.07,-1956.2 2768.93,-1956.2 2768.93,-1934.2 2563.07,-1934.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2563.07,-1934.2 2563.07,-1956.2 2768.93,-1956.2 2768.93,-1934.2 2563.07,-1934.2"/>
<polygon fill="#143826" stroke="none" points="2564.07,-1935.2 2564.07,-1955.2 2635.53,-1955.2 2635.53,-1935.2 2564.07,-1935.2"/>
<text xml:space="preserve" text-anchor="start" x="2587.55" y="-1943.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2639.53" y="-1943.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="2717.23" y="-1942" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create brand</text>
<polygon fill="#2a3242" stroke="none" points="2563.07,-1912.2 2563.07,-1934.2 2768.93,-1934.2 2768.93,-1912.2 2563.07,-1912.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2563.07,-1912.2 2563.07,-1934.2 2768.93,-1934.2 2768.93,-1912.2 2563.07,-1912.2"/>
<polygon fill="#143826" stroke="none" points="2564.07,-1913.2 2564.07,-1933.2 2602.07,-1933.2 2602.07,-1913.2 2564.07,-1913.2"/>
<text xml:space="preserve" text-anchor="start" x="2570.82" y="-1921.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2606.07" y="-1921.2" 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="2665.2" y="-1920" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add or replace brand image</text>
<polygon fill="#272e3d" stroke="none" points="2563.07,-1890.2 2563.07,-1912.2 2768.93,-1912.2 2768.93,-1890.2 2563.07,-1890.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2563.07,-1890.2 2563.07,-1912.2 2768.93,-1912.2 2768.93,-1890.2 2563.07,-1890.2"/>
<polygon fill="#301c44" stroke="none" points="2564.07,-1891.2 2564.07,-1911.2 2627.9,-1911.2 2627.9,-1891.2 2564.07,-1891.2"/>
<text xml:space="preserve" text-anchor="start" x="2580.49" y="-1899.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="2631.9" y="-1899.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2711.01" y="-1898" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Rename brand</text>
<polygon fill="#2a3242" stroke="none" points="2563.07,-1868.2 2563.07,-1890.2 2768.93,-1890.2 2768.93,-1868.2 2563.07,-1868.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2563.07,-1868.2 2563.07,-1890.2 2768.93,-1890.2 2768.93,-1868.2 2563.07,-1868.2"/>
<polygon fill="#3a181e" stroke="none" points="2564.07,-1869.2 2564.07,-1889.2 2632.61,-1889.2 2632.61,-1869.2 2564.07,-1869.2"/>
<text xml:space="preserve" text-anchor="start" x="2580.59" y="-1877.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="2636.61" y="-1877.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2718.12" y="-1876" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete brand</text>
<polygon fill="#272e3d" stroke="none" points="2563.07,-1846.2 2563.07,-1868.2 2768.93,-1868.2 2768.93,-1846.2 2563.07,-1846.2"/>
<polygon fill="none" stroke="#3f4c5f" points="2563.07,-1846.2 2563.07,-1868.2 2768.93,-1868.2 2768.93,-1846.2 2563.07,-1846.2"/>
<polygon fill="#3a181e" stroke="none" points="2564.07,-1847.2 2564.07,-1867.2 2614.04,-1867.2 2614.04,-1847.2 2564.07,-1847.2"/>
<text xml:space="preserve" text-anchor="start" x="2571.31" y="-1855.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="2618.04" y="-1855.2" 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="2694.11" y="-1854" 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="M3254.6,-1392.4C3067.34,-1392.4 3195.4,-1653.32 3037,-1753.2 2994.32,-1780.11 2847.5,-1740.36 2811,-1775.2 2734.35,-1848.38 2856.73,-1941.46 2776.93,-2011.2 2760.76,-2025.33 2688.59,-2034.31 2670.25,-2020.09"/>
<polygon fill="#5aa7ff" stroke="#5aa7ff" stroke-width="1.4" points="2672.48,-2019.07 2667,-2014.07 2668.16,-2021.39 2672.48,-2019.07"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3066.4" y="-1745.1" 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="3191.74,-1945.2 3191.74,-1980.2 3292.26,-1980.2 3292.26,-1945.2 3191.74,-1945.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3191.74,-1945.2 3191.74,-1980.2 3292.26,-1980.2 3292.26,-1945.2 3191.74,-1945.2"/>
<polygon fill="#33415c" stroke="none" points="3193.74,-1974.2 3193.74,-1978.2 3290.26,-1978.2 3290.26,-1974.2 3193.74,-1974.2"/>
<text xml:space="preserve" text-anchor="start" x="3230.34" y="-1961.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Unit</text>
<text xml:space="preserve" text-anchor="start" x="3233.49" y="-1952.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/unit</text>
<polygon fill="#2a3242" stroke="none" points="3191.74,-1923.2 3191.74,-1945.2 3292.26,-1945.2 3292.26,-1923.2 3191.74,-1923.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3191.74,-1923.2 3191.74,-1945.2 3292.26,-1945.2 3292.26,-1923.2 3191.74,-1923.2"/>
<polygon fill="#182b40" stroke="none" points="3192.74,-1924.2 3192.74,-1944.2 3234.13,-1944.2 3234.13,-1924.2 3192.74,-1924.2"/>
<text xml:space="preserve" text-anchor="start" x="3204.18" y="-1932.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3238.13" y="-1932.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3255.69" y="-1931" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List units</text>
<polygon fill="#272e3d" stroke="none" points="3191.74,-1901.2 3191.74,-1923.2 3292.26,-1923.2 3292.26,-1901.2 3191.74,-1901.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3191.74,-1901.2 3191.74,-1923.2 3292.26,-1923.2 3292.26,-1901.2 3191.74,-1901.2"/>
<polygon fill="#3b2c12" stroke="none" points="3192.74,-1902.2 3192.74,-1922.2 3231.76,-1922.2 3231.76,-1902.2 3192.74,-1902.2"/>
<text xml:space="preserve" text-anchor="start" x="3203.25" y="-1910.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3235.76" y="-1910.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3248.58" y="-1909" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Upsert unit</text>
<polygon fill="#2a3242" stroke="none" points="3191.74,-1879.2 3191.74,-1901.2 3292.26,-1901.2 3292.26,-1879.2 3191.74,-1879.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3191.74,-1879.2 3191.74,-1901.2 3292.26,-1901.2 3292.26,-1879.2 3191.74,-1879.2"/>
<polygon fill="#3a181e" stroke="none" points="3192.74,-1880.2 3192.74,-1900.2 3234.24,-1900.2 3234.24,-1880.2 3192.74,-1880.2"/>
<text xml:space="preserve" text-anchor="start" x="3195.74" y="-1888.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3238.24" y="-1888.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3249.02" y="-1887" 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="M3254.6,-1194.4C3027.05,-1194.4 3226.03,-1480.77 3255.6,-1706.4 3265.69,-1783.35 3290.26,-1798.24 3300.26,-1875.2 3306.17,-1920.6 3332.35,-1945.55 3300.26,-1978.2 3284.52,-1994.22 3252.27,-2002.68 3243.98,-1987.76"/>
<polygon fill="#f5c15c" stroke="#f5c15c" stroke-width="1.4" points="3246.44,-1987.53 3242.48,-1981.26 3241.67,-1988.64 3246.44,-1987.53"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3280.7" y="-1745.1" 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="3728.82,-898.6 3728.82,-933.6 4043.18,-933.6 4043.18,-898.6 3728.82,-898.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-898.6 3728.82,-933.6 4043.18,-933.6 4043.18,-898.6 3728.82,-898.6"/>
<polygon fill="#33415c" stroke="none" points="3730.82,-927.6 3730.82,-931.6 3886,-931.6 3886,-927.6 3730.82,-927.6"/>
<polygon fill="#33415c" stroke="none" points="3886,-927.6 3886,-931.6 4041.18,-931.6 4041.18,-927.6 3886,-927.6"/>
<text xml:space="preserve" text-anchor="start" x="3861.33" y="-914.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Property</text>
<text xml:space="preserve" text-anchor="start" x="3856.99" y="-905.5" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/propertyname</text>
<polygon fill="#2a3242" stroke="none" points="3728.82,-876.6 3728.82,-898.6 4043.18,-898.6 4043.18,-876.6 3728.82,-876.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-876.6 3728.82,-898.6 4043.18,-898.6 4043.18,-876.6 3728.82,-876.6"/>
<polygon fill="#182b40" stroke="none" points="3729.82,-877.6 3729.82,-897.6 3829.59,-897.6 3829.59,-877.6 3729.82,-877.6"/>
<text xml:space="preserve" text-anchor="start" x="3770.46" y="-885.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3833.59" y="-885.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3967.93" y="-884.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List property names</text>
<polygon fill="#272e3d" stroke="none" points="3728.82,-854.6 3728.82,-876.6 4043.18,-876.6 4043.18,-854.6 3728.82,-854.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-854.6 3728.82,-876.6 4043.18,-876.6 4043.18,-854.6 3728.82,-854.6"/>
<polygon fill="#143826" stroke="none" points="3729.82,-855.6 3729.82,-875.6 3827.07,-875.6 3827.07,-855.6 3729.82,-855.6"/>
<text xml:space="preserve" text-anchor="start" x="3766.19" y="-863.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3831.07" y="-863.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3960.37" y="-862.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create property name</text>
<polygon fill="#2a3242" stroke="none" points="3728.82,-832.6 3728.82,-854.6 4043.18,-854.6 4043.18,-832.6 3728.82,-832.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-832.6 3728.82,-854.6 4043.18,-854.6 4043.18,-832.6 3728.82,-832.6"/>
<polygon fill="#182b40" stroke="none" points="3729.82,-833.6 3729.82,-853.6 3794.88,-853.6 3794.88,-833.6 3729.82,-833.6"/>
<text xml:space="preserve" text-anchor="start" x="3753.1" y="-841.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3798.88" y="-841.6" 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="3964.37" y="-840.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List article properties</text>
<polygon fill="#272e3d" stroke="none" points="3728.82,-810.6 3728.82,-832.6 4043.18,-832.6 4043.18,-810.6 3728.82,-810.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-810.6 3728.82,-832.6 4043.18,-832.6 4043.18,-810.6 3728.82,-810.6"/>
<polygon fill="#182b40" stroke="none" points="3729.82,-811.6 3729.82,-831.6 3790.47,-831.6 3790.47,-811.6 3729.82,-811.6"/>
<text xml:space="preserve" text-anchor="start" x="3750.89" y="-819.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3794.47" y="-819.6" 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="3955.03" y="-818.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List category properties</text>
<polygon fill="#2a3242" stroke="none" points="3728.82,-788.6 3728.82,-810.6 4043.18,-810.6 4043.18,-788.6 3728.82,-788.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-788.6 3728.82,-810.6 4043.18,-810.6 4043.18,-788.6 3728.82,-788.6"/>
<polygon fill="#3b2c12" stroke="none" points="3729.82,-789.6 3729.82,-809.6 3789.54,-809.6 3789.54,-789.6 3729.82,-789.6"/>
<text xml:space="preserve" text-anchor="start" x="3750.68" y="-797.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3793.54" y="-797.6" 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="3948.37" y="-796.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Bulk set article properties</text>
<polygon fill="#272e3d" stroke="none" points="3728.82,-766.6 3728.82,-788.6 4043.18,-788.6 4043.18,-766.6 3728.82,-766.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-766.6 3728.82,-788.6 4043.18,-788.6 4043.18,-766.6 3728.82,-766.6"/>
<polygon fill="#3b2c12" stroke="none" points="3729.82,-767.6 3729.82,-787.6 3785.14,-787.6 3785.14,-767.6 3729.82,-767.6"/>
<text xml:space="preserve" text-anchor="start" x="3748.48" y="-775.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3789.14" y="-775.6" 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="3939.02" y="-774.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Bulk set category properties</text>
<polygon fill="#2a3242" stroke="none" points="3728.82,-744.6 3728.82,-766.6 4043.18,-766.6 4043.18,-744.6 3728.82,-744.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-744.6 3728.82,-766.6 4043.18,-766.6 4043.18,-744.6 3728.82,-744.6"/>
<polygon fill="#3b2c12" stroke="none" points="3729.82,-745.6 3729.82,-765.6 3815.59,-765.6 3815.59,-745.6 3729.82,-745.6"/>
<text xml:space="preserve" text-anchor="start" x="3763.7" y="-753.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3819.59" y="-753.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="3951.48" y="-752.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder property names</text>
<polygon fill="#272e3d" stroke="none" points="3728.82,-722.6 3728.82,-744.6 4043.18,-744.6 4043.18,-722.6 3728.82,-722.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-722.6 3728.82,-744.6 4043.18,-744.6 4043.18,-722.6 3728.82,-722.6"/>
<polygon fill="#301c44" stroke="none" points="3729.82,-723.6 3729.82,-743.6 3820.92,-743.6 3820.92,-723.6 3729.82,-723.6"/>
<text xml:space="preserve" text-anchor="start" x="3759.87" y="-731.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="3824.92" y="-731.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3958.58" y="-730.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update property name</text>
<polygon fill="#2a3242" stroke="none" points="3728.82,-700.6 3728.82,-722.6 4043.18,-722.6 4043.18,-700.6 3728.82,-700.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-700.6 3728.82,-722.6 4043.18,-722.6 4043.18,-700.6 3728.82,-700.6"/>
<polygon fill="#3a181e" stroke="none" points="3729.82,-701.6 3729.82,-721.6 3824.15,-721.6 3824.15,-701.6 3729.82,-701.6"/>
<text xml:space="preserve" text-anchor="start" x="3759.23" y="-709.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3828.15" y="-709.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3961.25" y="-708.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete property name</text>
<polygon fill="#272e3d" stroke="none" points="3728.82,-678.6 3728.82,-700.6 4043.18,-700.6 4043.18,-678.6 3728.82,-678.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-678.6 3728.82,-700.6 4043.18,-700.6 4043.18,-678.6 3728.82,-678.6"/>
<polygon fill="#3a181e" stroke="none" points="3729.82,-679.6 3729.82,-699.6 3775.73,-699.6 3775.73,-679.6 3729.82,-679.6"/>
<text xml:space="preserve" text-anchor="start" x="3735.02" y="-687.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3779.73" y="-687.6" 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="3959.93" y="-686.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete article property</text>
<polygon fill="#2a3242" stroke="none" points="3728.82,-656.6 3728.82,-678.6 4043.18,-678.6 4043.18,-656.6 3728.82,-656.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3728.82,-656.6 3728.82,-678.6 4043.18,-678.6 4043.18,-656.6 3728.82,-656.6"/>
<polygon fill="#3a181e" stroke="none" points="3729.82,-657.6 3729.82,-677.6 3771.32,-677.6 3771.32,-657.6 3729.82,-657.6"/>
<text xml:space="preserve" text-anchor="start" x="3732.82" y="-665.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3775.32" y="-665.6" 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="3950.58" y="-664.4" 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="M3549.21,-1409.9C3680.99,-1409.9 3640.23,-1207.73 3548.21,-1113.4 3448.76,-1011.46 2366.26,-1179.51 2266.98,-1077.4 2263.63,-1073.96 2263.59,-1070 2266.98,-1066.6 2280.88,-1052.61 3667.74,-1062.84 3687,-1058.6 3815.97,-1030.23 3957.1,-1066.01 3963.37,-941.44"/>
<polygon fill="#ff7fc2" stroke="#ff7fc2" stroke-width="1.4" points="3965.82,-941.78 3963.54,-934.72 3960.92,-941.66 3965.82,-941.78"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2291.99" y="-1069.3" 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="3357.29,-953.6 3357.29,-988.6 3644.71,-988.6 3644.71,-953.6 3357.29,-953.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-953.6 3357.29,-988.6 3644.71,-988.6 3644.71,-953.6 3357.29,-953.6"/>
<polygon fill="#33415c" stroke="none" points="3359.29,-982.6 3359.29,-986.6 3501,-986.6 3501,-982.6 3359.29,-982.6"/>
<polygon fill="#33415c" stroke="none" points="3501,-982.6 3501,-986.6 3642.71,-986.6 3642.71,-982.6 3501,-982.6"/>
<text xml:space="preserve" text-anchor="start" x="3476" y="-969.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Attribute</text>
<text xml:space="preserve" text-anchor="start" x="3472.23" y="-960.5" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/attributename</text>
<polygon fill="#2a3242" stroke="none" points="3357.29,-931.6 3357.29,-953.6 3644.71,-953.6 3644.71,-931.6 3357.29,-931.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-931.6 3357.29,-953.6 3644.71,-953.6 3644.71,-931.6 3357.29,-931.6"/>
<polygon fill="#182b40" stroke="none" points="3358.29,-932.6 3358.29,-952.6 3449.23,-952.6 3449.23,-932.6 3358.29,-932.6"/>
<text xml:space="preserve" text-anchor="start" x="3394.51" y="-940.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3453.23" y="-940.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3569.9" y="-939.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List attribute names</text>
<polygon fill="#272e3d" stroke="none" points="3357.29,-909.6 3357.29,-931.6 3644.71,-931.6 3644.71,-909.6 3357.29,-909.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-909.6 3357.29,-931.6 3644.71,-931.6 3644.71,-909.6 3357.29,-909.6"/>
<polygon fill="#143826" stroke="none" points="3358.29,-910.6 3358.29,-930.6 3446.71,-930.6 3446.71,-910.6 3358.29,-910.6"/>
<text xml:space="preserve" text-anchor="start" x="3390.25" y="-918.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3450.71" y="-918.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3562.34" y="-917.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create attribute name</text>
<polygon fill="#2a3242" stroke="none" points="3357.29,-887.6 3357.29,-909.6 3644.71,-909.6 3644.71,-887.6 3357.29,-887.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-887.6 3357.29,-909.6 3644.71,-909.6 3644.71,-887.6 3357.29,-887.6"/>
<polygon fill="#182b40" stroke="none" points="3358.29,-888.6 3358.29,-908.6 3413.63,-908.6 3413.63,-888.6 3358.29,-888.6"/>
<text xml:space="preserve" text-anchor="start" x="3376.71" y="-896.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3417.63" y="-896.6" 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="3548.1" y="-895.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List values for an attribute</text>
<polygon fill="#272e3d" stroke="none" points="3357.29,-865.6 3357.29,-887.6 3644.71,-887.6 3644.71,-865.6 3357.29,-865.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-865.6 3357.29,-887.6 3644.71,-887.6 3644.71,-865.6 3357.29,-865.6"/>
<polygon fill="#182b40" stroke="none" points="3358.29,-866.6 3358.29,-886.6 3400.4,-886.6 3400.4,-866.6 3358.29,-866.6"/>
<text xml:space="preserve" text-anchor="start" x="3370.09" y="-874.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3404.4" y="-874.6" 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="3549" y="-873.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List article attribute valu…</text>
<polygon fill="#2a3242" stroke="none" points="3357.29,-843.6 3357.29,-865.6 3644.71,-865.6 3644.71,-843.6 3357.29,-843.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-843.6 3357.29,-865.6 3644.71,-865.6 3644.71,-843.6 3357.29,-843.6"/>
<polygon fill="#182b40" stroke="none" points="3358.29,-844.6 3358.29,-864.6 3397.48,-864.6 3397.48,-844.6 3358.29,-844.6"/>
<text xml:space="preserve" text-anchor="start" x="3368.63" y="-852.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3401.48" y="-852.6" 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="3544.11" y="-851.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List category attribute val…</text>
<polygon fill="#272e3d" stroke="none" points="3357.29,-821.6 3357.29,-843.6 3644.71,-843.6 3644.71,-821.6 3357.29,-821.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-821.6 3357.29,-843.6 3644.71,-843.6 3644.71,-821.6 3357.29,-821.6"/>
<polygon fill="#143826" stroke="none" points="3358.29,-822.6 3358.29,-842.6 3411.11,-842.6 3411.11,-822.6 3358.29,-822.6"/>
<text xml:space="preserve" text-anchor="start" x="3372.45" y="-830.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3415.11" y="-830.6" 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="3540.55" y="-829.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create value for an attribu…</text>
<polygon fill="#2a3242" stroke="none" points="3357.29,-799.6 3357.29,-821.6 3644.71,-821.6 3644.71,-799.6 3357.29,-799.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-799.6 3357.29,-821.6 3644.71,-821.6 3644.71,-799.6 3357.29,-799.6"/>
<polygon fill="#143826" stroke="none" points="3358.29,-800.6 3358.29,-820.6 3400.1,-820.6 3400.1,-800.6 3358.29,-800.6"/>
<text xml:space="preserve" text-anchor="start" x="3366.94" y="-808.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3404.1" y="-808.6" 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="3539.21" y="-807.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add or replace attribute va…</text>
<polygon fill="#272e3d" stroke="none" points="3357.29,-777.6 3357.29,-799.6 3644.71,-799.6 3644.71,-777.6 3357.29,-777.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-777.6 3357.29,-799.6 3644.71,-799.6 3644.71,-777.6 3357.29,-777.6"/>
<polygon fill="#3b2c12" stroke="none" points="3358.29,-778.6 3358.29,-798.6 3401.07,-798.6 3401.07,-778.6 3358.29,-778.6"/>
<text xml:space="preserve" text-anchor="start" x="3370.68" y="-786.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3405.07" y="-786.6" 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="3538.77" y="-785.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder values of an attrib…</text>
<polygon fill="#2a3242" stroke="none" points="3357.29,-755.6 3357.29,-777.6 3644.71,-777.6 3644.71,-755.6 3357.29,-755.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-755.6 3357.29,-777.6 3644.71,-777.6 3644.71,-755.6 3357.29,-755.6"/>
<polygon fill="#3b2c12" stroke="none" points="3358.29,-756.6 3358.29,-776.6 3399.96,-776.6 3399.96,-756.6 3358.29,-756.6"/>
<text xml:space="preserve" text-anchor="start" x="3370.12" y="-764.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3403.96" y="-764.6" 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="3547.67" y="-763.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Bulk set article attribute …</text>
<polygon fill="#272e3d" stroke="none" points="3357.29,-733.6 3357.29,-755.6 3644.71,-755.6 3644.71,-733.6 3357.29,-733.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-733.6 3357.29,-755.6 3644.71,-755.6 3644.71,-733.6 3357.29,-733.6"/>
<polygon fill="#3b2c12" stroke="none" points="3358.29,-734.6 3358.29,-754.6 3396.29,-754.6 3396.29,-734.6 3358.29,-734.6"/>
<text xml:space="preserve" text-anchor="start" x="3368.29" y="-742.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3400.29" y="-742.6" 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="3540.55" y="-741.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Bulk set category attribute…</text>
<polygon fill="#2a3242" stroke="none" points="3357.29,-711.6 3357.29,-733.6 3644.71,-733.6 3644.71,-711.6 3357.29,-711.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-711.6 3357.29,-733.6 3644.71,-733.6 3644.71,-711.6 3357.29,-711.6"/>
<polygon fill="#3b2c12" stroke="none" points="3358.29,-712.6 3358.29,-732.6 3435.23,-732.6 3435.23,-712.6 3358.29,-712.6"/>
<text xml:space="preserve" text-anchor="start" x="3387.76" y="-720.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3439.23" y="-720.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="3553.44" y="-719.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder attribute names</text>
<polygon fill="#272e3d" stroke="none" points="3357.29,-689.6 3357.29,-711.6 3644.71,-711.6 3644.71,-689.6 3357.29,-689.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-689.6 3357.29,-711.6 3644.71,-711.6 3644.71,-689.6 3357.29,-689.6"/>
<polygon fill="#301c44" stroke="none" points="3358.29,-690.6 3358.29,-710.6 3440.56,-710.6 3440.56,-690.6 3358.29,-690.6"/>
<text xml:space="preserve" text-anchor="start" x="3383.93" y="-698.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="3444.56" y="-698.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3560.55" y="-697.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update attribute name</text>
<polygon fill="#2a3242" stroke="none" points="3357.29,-667.6 3357.29,-689.6 3644.71,-689.6 3644.71,-667.6 3357.29,-667.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-667.6 3357.29,-689.6 3644.71,-689.6 3644.71,-667.6 3357.29,-667.6"/>
<polygon fill="#301c44" stroke="none" points="3358.29,-668.6 3358.29,-688.6 3418.07,-688.6 3418.07,-668.6 3358.29,-668.6"/>
<text xml:space="preserve" text-anchor="start" x="3372.68" y="-676.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="3422.07" y="-676.6" 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="3561.44" y="-675.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update attribute value</text>
<polygon fill="#272e3d" stroke="none" points="3357.29,-645.6 3357.29,-667.6 3644.71,-667.6 3644.71,-645.6 3357.29,-645.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-645.6 3357.29,-667.6 3644.71,-667.6 3644.71,-645.6 3357.29,-645.6"/>
<polygon fill="#3a181e" stroke="none" points="3358.29,-646.6 3358.29,-666.6 3443.79,-666.6 3443.79,-646.6 3358.29,-646.6"/>
<text xml:space="preserve" text-anchor="start" x="3383.29" y="-654.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3447.79" y="-654.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3563.22" y="-653.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete attribute name</text>
<polygon fill="#2a3242" stroke="none" points="3357.29,-623.6 3357.29,-645.6 3644.71,-645.6 3644.71,-623.6 3357.29,-623.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-623.6 3357.29,-645.6 3644.71,-645.6 3644.71,-623.6 3357.29,-623.6"/>
<polygon fill="#3a181e" stroke="none" points="3358.29,-624.6 3358.29,-644.6 3421.3,-644.6 3421.3,-624.6 3358.29,-624.6"/>
<text xml:space="preserve" text-anchor="start" x="3372.04" y="-632.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3425.3" y="-632.6" 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="3564.11" y="-631.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete attribute value</text>
<polygon fill="#272e3d" stroke="none" points="3357.29,-601.6 3357.29,-623.6 3644.71,-623.6 3644.71,-601.6 3357.29,-601.6"/>
<polygon fill="none" stroke="#3f4c5f" points="3357.29,-601.6 3357.29,-623.6 3644.71,-623.6 3644.71,-601.6 3357.29,-601.6"/>
<polygon fill="#3a181e" stroke="none" points="3358.29,-602.6 3358.29,-622.6 3402.74,-622.6 3402.74,-602.6 3358.29,-602.6"/>
<text xml:space="preserve" text-anchor="start" x="3362.76" y="-610.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3406.74" y="-610.6" 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="3540.1" y="-609.4" 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="M3549.21,-1409.9C3734.23,-1409.9 3576.93,-1182.82 3571.97,-996.44"/>
<polygon fill="#8f95ff" stroke="#8f95ff" stroke-width="1.4" points="3574.43,-996.69 3571.88,-989.72 3569.53,-996.75 3574.43,-996.69"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3604.77" y="-1069.3" 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,-2338 30.5,-2373 221.5,-2373 221.5,-2338 30.5,-2338"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2338 30.5,-2373 221.5,-2373 221.5,-2338 30.5,-2338"/>
<polygon fill="#33415c" stroke="none" points="32.5,-2367 32.5,-2371 219.5,-2371 219.5,-2367 32.5,-2367"/>
<text xml:space="preserve" text-anchor="start" x="83.32" y="-2354.2" 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="-2344.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/article/{sku}/supplier</text>
<polygon fill="#2a3242" stroke="none" points="30.5,-2316 30.5,-2338 221.5,-2338 221.5,-2316 30.5,-2316"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2316 30.5,-2338 221.5,-2338 221.5,-2316 30.5,-2316"/>
<polygon fill="#182b40" stroke="none" points="31.5,-2317 31.5,-2337 90.16,-2337 90.16,-2317 31.5,-2317"/>
<text xml:space="preserve" text-anchor="start" x="51.58" y="-2325.3" 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="-2325" 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="-2323.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List article suppliers</text>
<polygon fill="#272e3d" stroke="none" points="30.5,-2294 30.5,-2316 221.5,-2316 221.5,-2294 30.5,-2294"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2294 30.5,-2316 221.5,-2316 221.5,-2294 30.5,-2294"/>
<polygon fill="#143826" stroke="none" points="31.5,-2295 31.5,-2315 84.67,-2315 84.67,-2295 31.5,-2295"/>
<text xml:space="preserve" text-anchor="start" x="45.83" y="-2303.3" 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="-2303" 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="-2301.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Assign supplier to article</text>
<polygon fill="#2a3242" stroke="none" points="30.5,-2272 30.5,-2294 221.5,-2294 221.5,-2272 30.5,-2272"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2272 30.5,-2294 221.5,-2294 221.5,-2272 30.5,-2272"/>
<polygon fill="#3b2c12" stroke="none" points="31.5,-2273 31.5,-2293 76.15,-2293 76.15,-2273 31.5,-2273"/>
<text xml:space="preserve" text-anchor="start" x="44.83" y="-2281.3" 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="-2281" 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="-2279.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder article suppliers</text>
<polygon fill="#272e3d" stroke="none" points="30.5,-2250 30.5,-2272 221.5,-2272 221.5,-2250 30.5,-2250"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2250 30.5,-2272 221.5,-2272 221.5,-2250 30.5,-2250"/>
<polygon fill="#301c44" stroke="none" points="31.5,-2251 31.5,-2271 74.37,-2271 74.37,-2251 31.5,-2251"/>
<text xml:space="preserve" text-anchor="start" x="37.44" y="-2259.3" 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="-2259" 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="-2257.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update article supplier ass…</text>
<polygon fill="#2a3242" stroke="none" points="30.5,-2228 30.5,-2250 221.5,-2250 221.5,-2228 30.5,-2228"/>
<polygon fill="none" stroke="#3f4c5f" points="30.5,-2228 30.5,-2250 221.5,-2250 221.5,-2228 30.5,-2228"/>
<polygon fill="#3a181e" stroke="none" points="31.5,-2229 31.5,-2249 73,-2249 73,-2229 31.5,-2229"/>
<text xml:space="preserve" text-anchor="start" x="34.5" y="-2237.3" 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="-2237" 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="-2235.8" 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="M3254.6,-1634.4C2788.35,-1634.4 2673.76,-1684.98 2208,-1706.4 1519.21,-1738.07 1344.71,-1692.46 657,-1742.4 537.31,-1751.09 476.26,-1692.83 388.98,-1775.2 264.21,-1892.95 429.34,-2022.8 320,-2155 302.69,-2175.92 280.22,-2156 263,-2177 207.53,-2244.67 296.16,-2314.32 229.5,-2371 214.31,-2383.92 147.63,-2392.48 130.19,-2379.53"/>
<polygon fill="#c79bff" stroke="#c79bff" stroke-width="1.4" points="132.57,-2378.78 127.03,-2373.85 128.29,-2381.16 132.57,-2378.78"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="411.99" y="-1927" 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="5526.19,-382.8 5526.19,-417.8 5789.81,-417.8 5789.81,-382.8 5526.19,-382.8"/>
<polygon fill="none" stroke="#3f4c5f" points="5526.19,-382.8 5526.19,-417.8 5789.81,-417.8 5789.81,-382.8 5526.19,-382.8"/>
<polygon fill="#33415c" stroke="none" points="5528.19,-411.8 5528.19,-415.8 5593.09,-415.8 5593.09,-411.8 5528.19,-411.8"/>
<polygon fill="#33415c" stroke="none" points="5593.09,-411.8 5593.09,-415.8 5658,-415.8 5658,-411.8 5593.09,-411.8"/>
<polygon fill="#33415c" stroke="none" points="5658,-411.8 5658,-415.8 5722.91,-415.8 5722.91,-411.8 5658,-411.8"/>
<polygon fill="#33415c" stroke="none" points="5722.91,-411.8 5722.91,-415.8 5787.81,-415.8 5787.81,-411.8 5722.91,-411.8"/>
<text xml:space="preserve" text-anchor="start" x="5640.66" y="-399" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Image</text>
<text xml:space="preserve" text-anchor="start" x="5644.49" y="-389.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/image</text>
<polygon fill="#2a3242" stroke="none" points="5526.19,-360.8 5526.19,-382.8 5789.81,-382.8 5789.81,-360.8 5526.19,-360.8"/>
<polygon fill="none" stroke="#3f4c5f" points="5526.19,-360.8 5526.19,-382.8 5789.81,-382.8 5789.81,-360.8 5526.19,-360.8"/>
<polygon fill="#182b40" stroke="none" points="5527.19,-361.8 5527.19,-381.8 5595.35,-381.8 5595.35,-361.8 5527.19,-361.8"/>
<text xml:space="preserve" text-anchor="start" x="5552.02" y="-370.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5599.35" y="-369.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{fullHash}</text>
<text xml:space="preserve" text-anchor="start" x="5717.67" y="-368.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Full image by hash</text>
<polygon fill="#272e3d" stroke="none" points="5526.19,-338.8 5526.19,-360.8 5789.81,-360.8 5789.81,-338.8 5526.19,-338.8"/>
<polygon fill="none" stroke="#3f4c5f" points="5526.19,-338.8 5526.19,-360.8 5789.81,-360.8 5789.81,-338.8 5526.19,-338.8"/>
<polygon fill="#182b40" stroke="none" points="5527.19,-339.8 5527.19,-359.8 5565.19,-359.8 5565.19,-339.8 5527.19,-339.8"/>
<text xml:space="preserve" text-anchor="start" x="5536.94" y="-348.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5569.19" y="-347.8" 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="5686.1" y="-346.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Small thumb image by hash</text>
<polygon fill="#2a3242" stroke="none" points="5526.19,-316.8 5526.19,-338.8 5789.81,-338.8 5789.81,-316.8 5526.19,-316.8"/>
<polygon fill="none" stroke="#3f4c5f" points="5526.19,-316.8 5526.19,-338.8 5789.81,-338.8 5789.81,-316.8 5526.19,-316.8"/>
<polygon fill="#182b40" stroke="none" points="5527.19,-317.8 5527.19,-337.8 5580.23,-337.8 5580.23,-317.8 5527.19,-317.8"/>
<text xml:space="preserve" text-anchor="start" x="5544.46" y="-326.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="5584.23" y="-325.8" 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="5705.66" y="-324.6" 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="M3541.4,-1480.4C3704.51,-1480.4 3653.84,-1230.6 3540.4,-1113.4 3461.46,-1031.85 2439.95,-1147.06 2520,-1066.6 2535.3,-1051.22 4062.18,-1067.43 4082,-1058.6 4342.68,-942.51 4253.9,-701.03 4513.98,-583.6 4550.06,-567.31 5911.22,-589.81 5939,-561.6 5942.37,-558.18 5942.27,-554.32 5939,-550.8 5922.62,-533.17 5853.14,-552.22 5831,-542.8 5756.67,-511.16 5695.17,-501.41 5690.71,-425.84"/>
<polygon fill="#ff9f5a" stroke="#ff9f5a" stroke-width="1.4" points="5693.16,-425.84 5690.51,-418.92 5688.27,-425.99 5693.16,-425.84"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4532.49" y="-792.4" 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="M3047.8,-1978.2C3122.91,-1978.2 3090.16,-1870.54 3046.8,-1809.2 3003.43,-1747.84 2840.55,-1797.63 2891.49,-1742.4 2927.75,-1703.08 3349.81,-1752.13 3394.23,-1709.42"/>
<polygon fill="#4fc4e8" stroke="#4fc4e8" stroke-width="1.4" points="3396.33,-1710.69 3397.1,-1703.32 3391.9,-1708.61 3396.33,-1710.69"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2910.75" y="-1745.1" 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="M3046.8,-1989.2C3077.47,-1943.73 3122.8,-1943.73 3122.8,-2016.7 3122.8,-2086.82 2943.48,-2089.56 2878.36,-2049.32"/>
<polygon fill="#ff8f66" stroke="#ff8f66" stroke-width="1.4" points="2879.88,-2047.4 2872.74,-2045.41 2877.09,-2051.42 2879.88,-2047.4"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3144.31" y="-1927" 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="M3055.59,-1929.7C3109.14,-1929.7 3089.91,-1849.46 3054.59,-1809.2 2982.49,-1727.03 2919.9,-1784.64 2811,-1775.2 2716.05,-1766.97 2015.7,-1780.67 1955.98,-1706.4 1786.92,-1496.17 1768.24,-1293.14 1955.98,-1099.4 1983.02,-1071.5 2616.21,-1079.54 2655,-1077.4 2715.99,-1074.04 2730.98,-1069.27 2792,-1066.6 2816.84,-1065.51 3664.16,-1068.43 3687,-1058.6 3755.64,-1029.06 3804.47,-1011.75 3808.18,-941.44"/>
<polygon fill="#ff6f6f" stroke="#ff6f6f" stroke-width="1.4" points="3810.62,-941.78 3808.35,-934.72 3805.73,-941.65 3810.62,-941.78"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1980.99" y="-1407.2" 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="M3055.59,-1929.7C3109.14,-1929.7 3089.91,-1849.46 3054.59,-1809.2 2982.49,-1727.03 2919.89,-1784.81 2811,-1775.2 2680.75,-1763.7 2348.44,-1790.1 2223,-1753.2 2183.84,-1741.68 2164.19,-1741.86 2143.98,-1706.4 2010.39,-1472.02 1957.24,-1294.1 2143.98,-1099.4 2164.26,-1078.25 2641.79,-1079.73 2671,-1077.4 2690.89,-1075.81 3343.41,-1016.69 3422.35,-991.93"/>
<polygon fill="#4ecb8f" stroke="#4ecb8f" stroke-width="1.4" points="3423.37,-994.17 3428.29,-988.63 3420.98,-989.89 3423.37,-994.17"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2167.49" y="-1407.2" 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="M3047.8,-1912.2C3093.58,-1912.2 3076.94,-1843.66 3046.8,-1809.2 2977.09,-1729.5 2916.37,-1785.62 2811,-1775.2 2765.93,-1770.74 2435.15,-1786.08 2404,-1753.2 2151.81,-1487.01 2538.01,-1239.31 2861.49,-1066.6 2880.65,-1056.37 4408.82,-1071.91 4426,-1058.6 4598.55,-924.88 4379.13,-718.19 4551,-583.6 4614.04,-534.23 5935.82,-618.64 5992,-561.6 5995.37,-558.18 5995.31,-554.28 5992,-550.8 5979.65,-537.82 5848.11,-548.09 5831,-542.8 5731.66,-512.08 5631.59,-523.21 5625.81,-425.91"/>
<polygon fill="#a98cff" stroke="#a98cff" stroke-width="1.4" points="5628.26,-425.84 5625.61,-418.92 5623.36,-425.99 5628.26,-425.84"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2878.74" y="-1069.3" 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="M2769.93,-1923.2C2805.93,-1923.2 2791.19,-1870.49 2768.93,-1842.2 2669.18,-1715.44 2364.37,-1893.8 2420,-1742.4 2553.76,-1378.37 2750.66,-1386.43 2985,-1077.4 3144.94,-866.48 3085.45,-710.06 3318,-583.6 3424.71,-525.57 5402.63,-609.72 5504,-542.8 5552.74,-510.62 5560.01,-481.21 5560.6,-425.58"/>
<polygon fill="#5aa7e6" stroke="#5aa7e6" stroke-width="1.4" points="5563.05,-425.93 5560.63,-418.92 5558.15,-425.91 5563.05,-425.93"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3008.98" y="-1069.3" 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="3376.06,-1958.2 3376.06,-1989.2 3641.94,-1989.2 3641.94,-1958.2 3376.06,-1958.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3376.06,-1958.2 3376.06,-1989.2 3641.94,-1989.2 3641.94,-1958.2 3376.06,-1958.2"/>
<text xml:space="preserve" text-anchor="start" x="3469" y="-1974.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">PublicCatalog</text>
<text xml:space="preserve" text-anchor="start" x="3495.99" y="-1965.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/public</text>
<polygon fill="#2a3242" stroke="none" points="3376.06,-1936.2 3376.06,-1958.2 3641.94,-1958.2 3641.94,-1936.2 3376.06,-1936.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3376.06,-1936.2 3376.06,-1958.2 3641.94,-1958.2 3641.94,-1936.2 3376.06,-1936.2"/>
<polygon fill="#182b40" stroke="none" points="3377.06,-1937.2 3377.06,-1957.2 3430.26,-1957.2 3430.26,-1937.2 3377.06,-1937.2"/>
<text xml:space="preserve" text-anchor="start" x="3394.41" y="-1945.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3434.26" y="-1945.2" 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="3573.8" y="-1944" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List public articles</text>
<polygon fill="#272e3d" stroke="none" points="3376.06,-1914.2 3376.06,-1936.2 3641.94,-1936.2 3641.94,-1914.2 3376.06,-1914.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3376.06,-1914.2 3376.06,-1936.2 3641.94,-1936.2 3641.94,-1914.2 3376.06,-1914.2"/>
<polygon fill="#182b40" stroke="none" points="3377.06,-1915.2 3377.06,-1935.2 3415.06,-1935.2 3415.06,-1915.2 3377.06,-1915.2"/>
<text xml:space="preserve" text-anchor="start" x="3386.81" y="-1923.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3419.06" y="-1923.2" 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="3556.01" y="-1922" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get public article detail</text>
<polygon fill="#2a3242" stroke="none" points="3376.06,-1892.2 3376.06,-1914.2 3641.94,-1914.2 3641.94,-1892.2 3376.06,-1892.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3376.06,-1892.2 3376.06,-1914.2 3641.94,-1914.2 3641.94,-1892.2 3376.06,-1892.2"/>
<polygon fill="#182b40" stroke="none" points="3377.06,-1893.2 3377.06,-1913.2 3421.4,-1913.2 3421.4,-1893.2 3377.06,-1893.2"/>
<text xml:space="preserve" text-anchor="start" x="3389.98" y="-1901.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3425.4" y="-1901.2" 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="3562.23" y="-1900" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List public categories</text>
<polygon fill="#272e3d" stroke="none" points="3376.06,-1870.2 3376.06,-1892.2 3641.94,-1892.2 3641.94,-1870.2 3376.06,-1870.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3376.06,-1870.2 3376.06,-1892.2 3641.94,-1892.2 3641.94,-1870.2 3376.06,-1870.2"/>
<polygon fill="#143826" stroke="none" points="3377.06,-1871.2 3377.06,-1891.2 3435.74,-1891.2 3435.74,-1871.2 3377.06,-1871.2"/>
<text xml:space="preserve" text-anchor="start" x="3394.15" y="-1879.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3439.74" y="-1879.2" 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="3565.79" y="-1878" 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="M3367.2,-1929.7C3346.14,-1929.7 3326.68,-1759.83 3338.49,-1742.4 3364.12,-1704.57 3430.87,-1744.13 3440.13,-1710.38"/>
<polygon fill="#ff8f66" stroke="#ff8f66" stroke-width="1.4" points="3442.55,-1710.75 3440.95,-1703.5 3437.69,-1710.16 3442.55,-1710.75"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3357.75" y="-1745.1" 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="M3367.2,-1929.7C3285.85,-1929.7 3396.52,-2057.64 3334,-2109.68 3267.2,-2165.29 2956.5,-2137.28 2935.34,-2054.22"/>
<polygon fill="#4fc4e8" stroke="#4fc4e8" stroke-width="1.4" points="2937.77,-2053.94 2934.46,-2047.3 2932.91,-2054.55 2937.77,-2053.94"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3386" y="-2146.9" 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="M4044.18,-887.6C4181.72,-887.6 3996.63,-671.99 4102,-583.6 4119.73,-568.73 5744.87,-562.45 5768,-561.6 5847.63,-558.67 5867.34,-553.68 5946.97,-550.8 6020.93,-548.13 6539.87,-554.14 6613,-542.8 6733.61,-524.1 6875.17,-582.91 6882.01,-469.63"/>
<polygon fill="#ff7aa8" stroke="#ff7aa8" stroke-width="1.4" points="6884.45,-469.99 6882.21,-462.92 6879.55,-469.84 6884.45,-469.99"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="5973.99" y="-553.5" 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="M3645.71,-810.6C3748.25,-810.6 3608.63,-649.73 3687,-583.6 3729.82,-547.47 5658.41,-594.18 5704,-561.6 5757.06,-523.68 5755.61,-488.4 5755.38,-425.81"/>
<polygon fill="#e0b25a" stroke="#e0b25a" stroke-width="1.4" points="5757.83,-425.91 5755.36,-418.92 5752.93,-425.92 5757.83,-425.91"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="5733.94" y="-553.5" 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,-1978.2 32.8,-2013.2 245.2,-2013.2 245.2,-1978.2 32.8,-1978.2"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-1978.2 32.8,-2013.2 245.2,-2013.2 245.2,-1978.2 32.8,-1978.2"/>
<polygon fill="#33415c" stroke="none" points="34.8,-2007.2 34.8,-2011.2 139,-2011.2 139,-2007.2 34.8,-2007.2"/>
<polygon fill="#33415c" stroke="none" points="139,-2007.2 139,-2011.2 243.2,-2011.2 243.2,-2007.2 139,-2007.2"/>
<text xml:space="preserve" text-anchor="start" x="115" y="-1994.4" 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="-1985.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/supplier</text>
<polygon fill="#2a3242" stroke="none" points="32.8,-1956.2 32.8,-1978.2 245.2,-1978.2 245.2,-1956.2 32.8,-1956.2"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-1956.2 32.8,-1978.2 245.2,-1978.2 245.2,-1956.2 32.8,-1956.2"/>
<polygon fill="#182b40" stroke="none" points="33.8,-1957.2 33.8,-1977.2 107.44,-1977.2 107.44,-1957.2 33.8,-1957.2"/>
<text xml:space="preserve" text-anchor="start" x="61.37" y="-1965.5" 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="-1965.2" 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="-1964" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List suppliers</text>
<polygon fill="#272e3d" stroke="none" points="32.8,-1934.2 32.8,-1956.2 245.2,-1956.2 245.2,-1934.2 32.8,-1934.2"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-1934.2 32.8,-1956.2 245.2,-1956.2 245.2,-1934.2 32.8,-1934.2"/>
<polygon fill="#143826" stroke="none" points="33.8,-1935.2 33.8,-1955.2 104.92,-1955.2 104.92,-1935.2 33.8,-1935.2"/>
<text xml:space="preserve" text-anchor="start" x="57.11" y="-1943.5" 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="-1943.2" 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="-1942" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create supplier</text>
<polygon fill="#2a3242" stroke="none" points="32.8,-1912.2 32.8,-1934.2 245.2,-1934.2 245.2,-1912.2 32.8,-1912.2"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-1912.2 32.8,-1934.2 245.2,-1934.2 245.2,-1912.2 32.8,-1912.2"/>
<polygon fill="#182b40" stroke="none" points="33.8,-1913.2 33.8,-1933.2 73.13,-1933.2 73.13,-1913.2 33.8,-1913.2"/>
<text xml:space="preserve" text-anchor="start" x="44.22" y="-1921.5" 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="-1921.2" 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="-1920" 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,-1890.2 32.8,-1912.2 245.2,-1912.2 245.2,-1890.2 32.8,-1890.2"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-1890.2 32.8,-1912.2 245.2,-1912.2 245.2,-1890.2 32.8,-1890.2"/>
<polygon fill="#143826" stroke="none" points="33.8,-1891.2 33.8,-1911.2 71.8,-1911.2 71.8,-1891.2 33.8,-1891.2"/>
<text xml:space="preserve" text-anchor="start" x="40.55" y="-1899.5" 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="-1899.2" 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="-1898" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Query supplier articles by …</text>
<polygon fill="#2a3242" stroke="none" points="32.8,-1868.2 32.8,-1890.2 245.2,-1890.2 245.2,-1868.2 32.8,-1868.2"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-1868.2 32.8,-1890.2 245.2,-1890.2 245.2,-1868.2 32.8,-1868.2"/>
<polygon fill="#301c44" stroke="none" points="33.8,-1869.2 33.8,-1889.2 98.77,-1889.2 98.77,-1869.2 33.8,-1869.2"/>
<text xml:space="preserve" text-anchor="start" x="50.79" y="-1877.5" 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="-1877.2" 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="-1876" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update supplier</text>
<polygon fill="#272e3d" stroke="none" points="32.8,-1846.2 32.8,-1868.2 245.2,-1868.2 245.2,-1846.2 32.8,-1846.2"/>
<polygon fill="none" stroke="#3f4c5f" points="32.8,-1846.2 32.8,-1868.2 245.2,-1868.2 245.2,-1846.2 32.8,-1846.2"/>
<polygon fill="#3a181e" stroke="none" points="33.8,-1847.2 33.8,-1867.2 102,-1867.2 102,-1847.2 33.8,-1847.2"/>
<text xml:space="preserve" text-anchor="start" x="50.15" y="-1855.5" 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="-1855.2" 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="-1854" 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,-1923.2C316.82,-1923.2 271.18,-1837.73 304,-1775.2 480.68,-1438.61 453.06,-1255.39 783,-1066.6 934.95,-979.66 2334.39,-1138.2 2380.81,-974.18"/>
<polygon fill="#ff5f9e" stroke="#ff5f9e" stroke-width="1.4" points="2383.18,-974.97 2381.7,-967.7 2378.32,-974.3 2383.18,-974.97"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="746.86" y="-1407.2" 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,-2327C291.56,-2327 211.51,-2223.02 263,-2177 311.27,-2133.86 344.67,-2172.5 407,-2155 427.87,-2149.14 436.1,-2150.94 452,-2136.2 584.06,-2013.77 494.53,-1886.63 635.99,-1775.2 685.18,-1736.46 710.88,-1750.25 773,-1742.4 806.21,-1738.2 3103,-1736.2 3259.97,-1704.84"/>
<polygon fill="#56c8c8" stroke="#56c8c8" stroke-width="1.4" points="3260.88,-1707.11 3266.44,-1702.2 3259.03,-1702.58 3260.88,-1707.11"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="648" y="-1927" 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,-2305C258.5,-2305 238.17,-2255.91 221.5,-2224 197.09,-2177.26 154.99,-2198.36 124.98,-2155 89.35,-2103.52 87.05,-2080.12 86.91,-2021.16"/>
<polygon fill="#e0b25a" stroke="#e0b25a" stroke-width="1.4" points="89.36,-2021.32 86.9,-2014.32 84.46,-2021.32 89.36,-2021.32"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="144.49" y="-2146.9" 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.14,-2362 305.14,-2393 530.86,-2393 530.86,-2362 305.14,-2362"/>
<polygon fill="none" stroke="#3f4c5f" points="305.14,-2362 305.14,-2393 530.86,-2393 530.86,-2362 305.14,-2362"/>
<text xml:space="preserve" text-anchor="start" x="394.65" y="-2378.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Delivery</text>
<text xml:space="preserve" text-anchor="start" x="401.24" y="-2368.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/delivery</text>
<polygon fill="#2a3242" stroke="none" points="305.14,-2340 305.14,-2362 530.86,-2362 530.86,-2340 305.14,-2340"/>
<polygon fill="none" stroke="#3f4c5f" points="305.14,-2340 305.14,-2362 530.86,-2362 530.86,-2340 305.14,-2340"/>
<polygon fill="#182b40" stroke="none" points="306.14,-2341 306.14,-2361 383.63,-2361 383.63,-2341 306.14,-2341"/>
<text xml:space="preserve" text-anchor="start" x="335.63" y="-2349.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="387.63" y="-2349" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="477.4" y="-2347.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List deliveries</text>
<polygon fill="#272e3d" stroke="none" points="305.14,-2318 305.14,-2340 530.86,-2340 530.86,-2318 305.14,-2318"/>
<polygon fill="none" stroke="#3f4c5f" points="305.14,-2318 305.14,-2340 530.86,-2340 530.86,-2318 305.14,-2318"/>
<polygon fill="#143826" stroke="none" points="306.14,-2319 306.14,-2339 381.85,-2339 381.85,-2319 306.14,-2319"/>
<text xml:space="preserve" text-anchor="start" x="331.74" y="-2327.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="385.85" y="-2327" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="472.06" y="-2325.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create delivery</text>
<polygon fill="#2a3242" stroke="none" points="305.14,-2296 305.14,-2318 530.86,-2318 530.86,-2296 305.14,-2296"/>
<polygon fill="none" stroke="#3f4c5f" points="305.14,-2296 305.14,-2318 530.86,-2318 530.86,-2296 305.14,-2296"/>
<polygon fill="#182b40" stroke="none" points="306.14,-2297 306.14,-2317 380,-2317 380,-2297 306.14,-2297"/>
<text xml:space="preserve" text-anchor="start" x="333.82" y="-2305.3" 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" y="-2305" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="483.18" y="-2303.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get delivery</text>
<polygon fill="#272e3d" stroke="none" points="305.14,-2274 305.14,-2296 530.86,-2296 530.86,-2274 305.14,-2274"/>
<polygon fill="none" stroke="#3f4c5f" points="305.14,-2274 305.14,-2296 530.86,-2296 530.86,-2274 305.14,-2274"/>
<polygon fill="#182b40" stroke="none" points="306.14,-2275 306.14,-2295 344.14,-2295 344.14,-2275 306.14,-2275"/>
<text xml:space="preserve" text-anchor="start" x="315.89" y="-2283.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="348.14" y="-2283" 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="426.71" y="-2281.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get delivery attachment fil…</text>
<polygon fill="#2a3242" stroke="none" points="305.14,-2252 305.14,-2274 530.86,-2274 530.86,-2252 305.14,-2252"/>
<polygon fill="none" stroke="#3f4c5f" points="305.14,-2252 305.14,-2274 530.86,-2274 530.86,-2252 305.14,-2252"/>
<polygon fill="#143826" stroke="none" points="306.14,-2253 306.14,-2273 363.62,-2273 363.62,-2253 306.14,-2253"/>
<text xml:space="preserve" text-anchor="start" x="322.63" y="-2261.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="367.62" y="-2261" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/parse</text>
<text xml:space="preserve" text-anchor="start" x="444.05" y="-2259.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Parse document (SSE)</text>
<polygon fill="#272e3d" stroke="none" points="305.14,-2230 305.14,-2252 530.86,-2252 530.86,-2230 305.14,-2230"/>
<polygon fill="none" stroke="#3f4c5f" points="305.14,-2230 305.14,-2252 530.86,-2252 530.86,-2230 305.14,-2230"/>
<polygon fill="#301c44" stroke="none" points="306.14,-2231 306.14,-2251 375.7,-2251 375.7,-2231 306.14,-2231"/>
<text xml:space="preserve" text-anchor="start" x="325.42" y="-2239.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="379.7" y="-2239" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="470.28" y="-2237.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update delivery</text>
<polygon fill="#2a3242" stroke="none" points="305.14,-2208 305.14,-2230 530.86,-2230 530.86,-2208 305.14,-2208"/>
<polygon fill="none" stroke="#3f4c5f" points="305.14,-2208 305.14,-2230 530.86,-2230 530.86,-2208 305.14,-2208"/>
<polygon fill="#3a181e" stroke="none" points="306.14,-2209 306.14,-2229 378.93,-2229 378.93,-2209 306.14,-2209"/>
<text xml:space="preserve" text-anchor="start" x="324.78" y="-2217.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="382.93" y="-2217" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="472.95" y="-2215.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete delivery</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="M531.86,-2329C820.97,-2329 538.85,-1834.2 813,-1742.4 876.28,-1721.21 3146.13,-1767.27 3283.5,-1707.33"/>
<polygon fill="#5aa7e6" stroke="#5aa7e6" stroke-width="1.4" points="3284.92,-1709.36 3288.44,-1702.83 3281.61,-1705.74 3284.92,-1709.36"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="774.18" y="-1927" 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.14,-2329C234.27,-2329 287.12,-2242.93 264,-2177 238.53,-2104.38 194.69,-2093.11 191.31,-2021.27"/>
<polygon fill="#4ecb8f" stroke="#4ecb8f" stroke-width="1.4" points="193.76,-2021.26 191.15,-2014.32 188.86,-2021.37 193.76,-2021.26"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="278.53" y="-2146.9" 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="1187.61,-1956.2 1187.61,-1991.2 1512.39,-1991.2 1512.39,-1956.2 1187.61,-1956.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1187.61,-1956.2 1187.61,-1991.2 1512.39,-1991.2 1512.39,-1956.2 1187.61,-1956.2"/>
<polygon fill="#33415c" stroke="none" points="1189.61,-1985.2 1189.61,-1989.2 1296.54,-1989.2 1296.54,-1985.2 1189.61,-1985.2"/>
<polygon fill="#33415c" stroke="none" points="1296.54,-1985.2 1296.54,-1989.2 1403.46,-1989.2 1403.46,-1985.2 1296.54,-1985.2"/>
<polygon fill="#33415c" stroke="none" points="1403.46,-1985.2 1403.46,-1989.2 1510.39,-1989.2 1510.39,-1985.2 1403.46,-1985.2"/>
<text xml:space="preserve" text-anchor="start" x="1330" y="-1972.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Ledger</text>
<text xml:space="preserve" text-anchor="start" x="1336.24" y="-1963.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/ledger</text>
<polygon fill="#2a3242" stroke="none" points="1187.61,-1934.2 1187.61,-1956.2 1512.39,-1956.2 1512.39,-1934.2 1187.61,-1934.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1187.61,-1934.2 1187.61,-1956.2 1512.39,-1956.2 1512.39,-1934.2 1187.61,-1934.2"/>
<polygon fill="#182b40" stroke="none" points="1188.61,-1935.2 1188.61,-1955.2 1280.15,-1955.2 1280.15,-1935.2 1188.61,-1935.2"/>
<text xml:space="preserve" text-anchor="start" x="1225.13" y="-1943.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1284.15" y="-1943.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1402.01" y="-1942" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Query ledger by manifest ar…</text>
<polygon fill="#272e3d" stroke="none" points="1187.61,-1912.2 1187.61,-1934.2 1512.39,-1934.2 1512.39,-1912.2 1187.61,-1912.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1187.61,-1912.2 1187.61,-1934.2 1512.39,-1934.2 1512.39,-1912.2 1187.61,-1912.2"/>
<polygon fill="#143826" stroke="none" points="1188.61,-1913.2 1188.61,-1933.2 1295.71,-1933.2 1295.71,-1913.2 1188.61,-1913.2"/>
<text xml:space="preserve" text-anchor="start" x="1229.91" y="-1921.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1299.71" y="-1921.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1448.69" y="-1920" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add ledger entry</text>
<polygon fill="#2a3242" stroke="none" points="1187.61,-1890.2 1187.61,-1912.2 1512.39,-1912.2 1512.39,-1890.2 1187.61,-1890.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1187.61,-1890.2 1187.61,-1912.2 1512.39,-1912.2 1512.39,-1890.2 1187.61,-1890.2"/>
<polygon fill="#182b40" stroke="none" points="1188.61,-1891.2 1188.61,-1911.2 1226.61,-1911.2 1226.61,-1891.2 1188.61,-1891.2"/>
<text xml:space="preserve" text-anchor="start" x="1198.36" y="-1899.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1230.61" y="-1899.2" 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="1402.01" y="-1898" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Query ledger by manifest ar…</text>
<polygon fill="#272e3d" stroke="none" points="1187.61,-1868.2 1187.61,-1890.2 1512.39,-1890.2 1512.39,-1868.2 1187.61,-1868.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1187.61,-1868.2 1187.61,-1890.2 1512.39,-1890.2 1512.39,-1868.2 1187.61,-1868.2"/>
<polygon fill="#182b40" stroke="none" points="1188.61,-1869.2 1188.61,-1889.2 1267.22,-1889.2 1267.22,-1869.2 1188.61,-1869.2"/>
<text xml:space="preserve" text-anchor="start" x="1218.66" y="-1877.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1271.22" y="-1877.2" 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="1408.24" y="-1876" 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="M531.86,-2307C807.9,-2307 900.1,-2290.48 1129,-2136.2 1194.75,-2091.88 1239.64,-2073.89 1242.89,-1999.1"/>
<polygon fill="#ff7aa8" stroke="#ff7aa8" stroke-width="1.4" points="1245.33,-1999.37 1243.03,-1992.32 1240.43,-1999.27 1245.33,-1999.37"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1124.06" y="-2146.9" 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="851.84,-1969.2 851.84,-2000.2 976.16,-2000.2 976.16,-1969.2 851.84,-1969.2"/>
<polygon fill="none" stroke="#3f4c5f" points="851.84,-1969.2 851.84,-2000.2 976.16,-2000.2 976.16,-1969.2 851.84,-1969.2"/>
<text xml:space="preserve" text-anchor="start" x="896.67" y="-1985.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Quote</text>
<text xml:space="preserve" text-anchor="start" x="901.49" y="-1976.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/quote</text>
<polygon fill="#2a3242" stroke="none" points="851.84,-1947.2 851.84,-1969.2 976.16,-1969.2 976.16,-1947.2 851.84,-1947.2"/>
<polygon fill="none" stroke="#3f4c5f" points="851.84,-1947.2 851.84,-1969.2 976.16,-1969.2 976.16,-1947.2 851.84,-1947.2"/>
<polygon fill="#182b40" stroke="none" points="852.84,-1948.2 852.84,-1968.2 899.79,-1968.2 899.79,-1948.2 852.84,-1948.2"/>
<text xml:space="preserve" text-anchor="start" x="867.06" y="-1956.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="903.79" y="-1956.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="932.47" y="-1955" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List quotes</text>
<polygon fill="#272e3d" stroke="none" points="851.84,-1925.2 851.84,-1947.2 976.16,-1947.2 976.16,-1925.2 851.84,-1925.2"/>
<polygon fill="none" stroke="#3f4c5f" points="851.84,-1925.2 851.84,-1947.2 976.16,-1947.2 976.16,-1925.2 851.84,-1925.2"/>
<polygon fill="#143826" stroke="none" points="852.84,-1926.2 852.84,-1946.2 897.27,-1946.2 897.27,-1926.2 852.84,-1926.2"/>
<text xml:space="preserve" text-anchor="start" x="862.8" y="-1934.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="901.27" y="-1934.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="924.91" y="-1933" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create quote</text>
<polygon fill="#2a3242" stroke="none" points="851.84,-1903.2 851.84,-1925.2 976.16,-1925.2 976.16,-1903.2 851.84,-1903.2"/>
<polygon fill="none" stroke="#3f4c5f" points="851.84,-1903.2 851.84,-1925.2 976.16,-1925.2 976.16,-1903.2 851.84,-1903.2"/>
<polygon fill="#182b40" stroke="none" points="852.84,-1904.2 852.84,-1924.2 895.42,-1924.2 895.42,-1904.2 852.84,-1904.2"/>
<text xml:space="preserve" text-anchor="start" x="864.88" y="-1912.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="899.42" y="-1912.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="936.02" y="-1911" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get quote</text>
<polygon fill="#272e3d" stroke="none" points="851.84,-1881.2 851.84,-1903.2 976.16,-1903.2 976.16,-1881.2 851.84,-1881.2"/>
<polygon fill="none" stroke="#3f4c5f" points="851.84,-1881.2 851.84,-1903.2 976.16,-1903.2 976.16,-1881.2 851.84,-1881.2"/>
<polygon fill="#301c44" stroke="none" points="852.84,-1882.2 852.84,-1902.2 891.12,-1902.2 891.12,-1882.2 852.84,-1882.2"/>
<text xml:space="preserve" text-anchor="start" x="856.48" y="-1890.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="895.12" y="-1890.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="923.12" y="-1889" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update quote</text>
<polygon fill="#2a3242" stroke="none" points="851.84,-1859.2 851.84,-1881.2 976.16,-1881.2 976.16,-1859.2 851.84,-1859.2"/>
<polygon fill="none" stroke="#3f4c5f" points="851.84,-1859.2 851.84,-1881.2 976.16,-1881.2 976.16,-1859.2 851.84,-1859.2"/>
<polygon fill="#3a181e" stroke="none" points="852.84,-1860.2 852.84,-1880.2 894.34,-1880.2 894.34,-1860.2 852.84,-1860.2"/>
<text xml:space="preserve" text-anchor="start" x="855.84" y="-1868.5" 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.34" y="-1868.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="925.79" y="-1867" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete quote</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="M977.16,-1914.2C1041.68,-1914.2 967.38,-1813.9 1019,-1775.2 1049.27,-1752.51 3705.18,-1754.1 3743,-1753.2 3864.84,-1750.31 3895.17,-1745.6 4017,-1742.4 4054.99,-1741.4 6726.3,-1733.45 6753,-1706.4 6942.5,-1514.39 6937.41,-1296.31 6753,-1099.4 6714.94,-1058.76 6308.64,-1068.5 6253,-1066.6 5927.08,-1055.48 3643.63,-1076.27 3318,-1058.6 3223.15,-1053.45 2487.86,-1062.95 2443.43,-974.2"/>
<polygon fill="#ff9f5a" stroke="#ff9f5a" stroke-width="1.4" points="2445.87,-973.88 2441.83,-967.66 2441.11,-975.04 2445.87,-973.88"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6912.73" y="-1407.2" 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="M977.16,-1936.2C1051.09,-1936.2 960.7,-1820.66 1019,-1775.2 1078.67,-1728.67 3689.71,-1806.92 3743,-1753.2 3746.38,-1749.79 3746.23,-1745.95 3743,-1742.4 3680.36,-1673.52 3335.61,-1789.51 3312.79,-1710.27"/>
<polygon fill="#5cd6d6" stroke="#5cd6d6" stroke-width="1.4" points="3315.24,-1710.11 3311.88,-1703.5 3310.38,-1710.76 3315.24,-1710.11"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3767.99" y="-1745.1" 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.53,-1513.4 866.53,-1548.4 1091.47,-1548.4 1091.47,-1513.4 866.53,-1513.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1513.4 866.53,-1548.4 1091.47,-1548.4 1091.47,-1513.4 866.53,-1513.4"/>
<polygon fill="#33415c" stroke="none" points="868.53,-1542.4 868.53,-1546.4 923.76,-1546.4 923.76,-1542.4 868.53,-1542.4"/>
<polygon fill="#33415c" stroke="none" points="923.76,-1542.4 923.76,-1546.4 979,-1546.4 979,-1542.4 923.76,-1542.4"/>
<polygon fill="#33415c" stroke="none" points="979,-1542.4 979,-1546.4 1034.24,-1546.4 1034.24,-1542.4 979,-1542.4"/>
<polygon fill="#33415c" stroke="none" points="1034.24,-1542.4 1034.24,-1546.4 1089.47,-1546.4 1089.47,-1542.4 1034.24,-1542.4"/>
<text xml:space="preserve" text-anchor="start" x="962.66" y="-1529.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Order</text>
<text xml:space="preserve" text-anchor="start" x="967.24" y="-1520.3" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/order</text>
<polygon fill="#2a3242" stroke="none" points="866.53,-1491.4 866.53,-1513.4 1091.47,-1513.4 1091.47,-1491.4 866.53,-1491.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1491.4 866.53,-1513.4 1091.47,-1513.4 1091.47,-1491.4 866.53,-1491.4"/>
<polygon fill="#182b40" stroke="none" points="867.53,-1492.4 867.53,-1512.4 948.47,-1512.4 948.47,-1492.4 867.53,-1492.4"/>
<text xml:space="preserve" text-anchor="start" x="898.75" y="-1500.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="952.47" y="-1500.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1049.13" y="-1499.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List orders</text>
<polygon fill="#272e3d" stroke="none" points="866.53,-1469.4 866.53,-1491.4 1091.47,-1491.4 1091.47,-1469.4 866.53,-1469.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1469.4 866.53,-1491.4 1091.47,-1491.4 1091.47,-1469.4 866.53,-1469.4"/>
<polygon fill="#143826" stroke="none" points="867.53,-1470.4 867.53,-1490.4 945.95,-1490.4 945.95,-1470.4 867.53,-1470.4"/>
<text xml:space="preserve" text-anchor="start" x="894.48" y="-1478.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="949.95" y="-1478.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1041.56" y="-1477.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create order</text>
<polygon fill="#2a3242" stroke="none" points="866.53,-1447.4 866.53,-1469.4 1091.47,-1469.4 1091.47,-1447.4 866.53,-1447.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1447.4 866.53,-1469.4 1091.47,-1469.4 1091.47,-1447.4 866.53,-1447.4"/>
<polygon fill="#182b40" stroke="none" points="867.53,-1448.4 867.53,-1468.4 944.09,-1468.4 944.09,-1448.4 867.53,-1448.4"/>
<text xml:space="preserve" text-anchor="start" x="896.56" y="-1456.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="948.09" y="-1456.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1052.68" y="-1455.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get order</text>
<polygon fill="#272e3d" stroke="none" points="866.53,-1425.4 866.53,-1447.4 1091.47,-1447.4 1091.47,-1425.4 866.53,-1425.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1425.4 866.53,-1447.4 1091.47,-1447.4 1091.47,-1425.4 866.53,-1425.4"/>
<polygon fill="#182b40" stroke="none" points="867.53,-1426.4 867.53,-1446.4 910.64,-1446.4 910.64,-1426.4 867.53,-1426.4"/>
<text xml:space="preserve" text-anchor="start" x="879.83" y="-1434.7" 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.64" y="-1434.4" 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="996.2" y="-1433.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List payments of an order</text>
<polygon fill="#2a3242" stroke="none" points="866.53,-1403.4 866.53,-1425.4 1091.47,-1425.4 1091.47,-1403.4 866.53,-1403.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1403.4 866.53,-1425.4 1091.47,-1425.4 1091.47,-1403.4 866.53,-1403.4"/>
<polygon fill="#182b40" stroke="none" points="867.53,-1404.4 867.53,-1424.4 908.93,-1424.4 908.93,-1404.4 867.53,-1404.4"/>
<text xml:space="preserve" text-anchor="start" x="878.98" y="-1412.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="912.93" y="-1412.4" 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="994.43" y="-1411.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List shipments of an order</text>
<polygon fill="#272e3d" stroke="none" points="866.53,-1381.4 866.53,-1403.4 1091.47,-1403.4 1091.47,-1381.4 866.53,-1381.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1381.4 866.53,-1403.4 1091.47,-1403.4 1091.47,-1381.4 866.53,-1381.4"/>
<polygon fill="#182b40" stroke="none" points="867.53,-1382.4 867.53,-1402.4 910.75,-1402.4 910.75,-1382.4 867.53,-1382.4"/>
<text xml:space="preserve" text-anchor="start" x="879.89" y="-1390.7" 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.75" y="-1390.4" 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="997.09" y="-1389.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List shippings of an order</text>
<polygon fill="#2a3242" stroke="none" points="866.53,-1359.4 866.53,-1381.4 1091.47,-1381.4 1091.47,-1359.4 866.53,-1359.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1359.4 866.53,-1381.4 1091.47,-1381.4 1091.47,-1359.4 866.53,-1359.4"/>
<polygon fill="#143826" stroke="none" points="867.53,-1360.4 867.53,-1380.4 911.37,-1380.4 911.37,-1360.4 867.53,-1360.4"/>
<text xml:space="preserve" text-anchor="start" x="877.2" y="-1368.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="915.37" y="-1368.4" 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="998.42" y="-1367.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Add payment to an order</text>
<polygon fill="#272e3d" stroke="none" points="866.53,-1337.4 866.53,-1359.4 1091.47,-1359.4 1091.47,-1337.4 866.53,-1337.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1337.4 866.53,-1359.4 1091.47,-1359.4 1091.47,-1337.4 866.53,-1337.4"/>
<polygon fill="#143826" stroke="none" points="867.53,-1338.4 867.53,-1358.4 905.53,-1358.4 905.53,-1338.4 867.53,-1338.4"/>
<text xml:space="preserve" text-anchor="start" x="874.27" y="-1346.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="909.53" y="-1346.4" 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="984.2" y="-1345.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create shipment for an order</text>
<polygon fill="#2a3242" stroke="none" points="866.53,-1315.4 866.53,-1337.4 1091.47,-1337.4 1091.47,-1315.4 866.53,-1315.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1315.4 866.53,-1337.4 1091.47,-1337.4 1091.47,-1315.4 866.53,-1315.4"/>
<polygon fill="#143826" stroke="none" points="867.53,-1316.4 867.53,-1336.4 907.34,-1336.4 907.34,-1316.4 867.53,-1316.4"/>
<text xml:space="preserve" text-anchor="start" x="875.18" y="-1324.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="911.34" y="-1324.4" 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="986.86" y="-1323.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create shipping for an order</text>
<polygon fill="#272e3d" stroke="none" points="866.53,-1293.4 866.53,-1315.4 1091.47,-1315.4 1091.47,-1293.4 866.53,-1293.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1293.4 866.53,-1315.4 1091.47,-1315.4 1091.47,-1293.4 866.53,-1293.4"/>
<polygon fill="#301c44" stroke="none" points="867.53,-1294.4 867.53,-1314.4 939.79,-1314.4 939.79,-1294.4 867.53,-1294.4"/>
<text xml:space="preserve" text-anchor="start" x="888.16" y="-1302.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="943.79" y="-1302.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1039.78" y="-1301.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update order</text>
<polygon fill="#2a3242" stroke="none" points="866.53,-1271.4 866.53,-1293.4 1091.47,-1293.4 1091.47,-1271.4 866.53,-1271.4"/>
<polygon fill="none" stroke="#3f4c5f" points="866.53,-1271.4 866.53,-1293.4 1091.47,-1293.4 1091.47,-1271.4 866.53,-1271.4"/>
<polygon fill="#3a181e" stroke="none" points="867.53,-1272.4 867.53,-1292.4 943.02,-1292.4 943.02,-1272.4 867.53,-1272.4"/>
<text xml:space="preserve" text-anchor="start" x="887.52" y="-1280.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="947.02" y="-1280.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1042.45" y="-1279.2" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete order</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="M977.16,-1936.2C1013.16,-1936.2 987.72,-1889.3 976.16,-1855.2 957.99,-1801.61 918.31,-1806.73 899.97,-1753.2 871.31,-1669.53 894.49,-1640.79 896.06,-1556.31"/>
<polygon fill="#ff7fc2" stroke="#ff7fc2" stroke-width="1.4" points="898.51,-1556.54 896.12,-1549.52 893.61,-1556.5 898.51,-1556.54"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="931.49" y="-1745.1" 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="M1092.47,-1458.4C1261.95,-1458.4 1083.41,-1198.34 1221,-1099.4 1271.03,-1063.42 2271.13,-1095.6 2330,-1077.4 2413.76,-1051.5 2495.09,-1055.94 2500.39,-974.32"/>
<polygon fill="#ff6b6b" stroke="#ff6b6b" stroke-width="1.4" points="2502.83,-974.79 2500.6,-967.72 2497.93,-974.64 2502.83,-974.79"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2388.04" y="-1069.3" 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="M1092.47,-1480.4C1205.26,-1480.4 1123.11,-1643.19 1221,-1699.22 1270.18,-1727.37 3194.64,-1755.87 3326.14,-1704.93"/>
<polygon fill="#6bdf9a" stroke="#6bdf9a" stroke-width="1.4" points="3327.65,-1706.86 3331.55,-1700.55 3324.57,-1703.05 3327.65,-1706.86"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2642" y="-1745.1" 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="1435.36,-1956.2 1435.36,-1991.2 1664.64,-1991.2 1664.64,-1956.2 1435.36,-1956.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1435.36,-1956.2 1435.36,-1991.2 1664.64,-1991.2 1664.64,-1956.2 1435.36,-1956.2"/>
<polygon fill="#33415c" stroke="none" points="1437.36,-1985.2 1437.36,-1989.2 1662.64,-1989.2 1662.64,-1985.2 1437.36,-1985.2"/>
<text xml:space="preserve" text-anchor="start" x="1522.67" y="-1972.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Shipment</text>
<text xml:space="preserve" text-anchor="start" x="1530.49" y="-1963.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/shipment</text>
<polygon fill="#2a3242" stroke="none" points="1435.36,-1934.2 1435.36,-1956.2 1664.64,-1956.2 1664.64,-1934.2 1435.36,-1934.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1435.36,-1934.2 1435.36,-1956.2 1664.64,-1956.2 1664.64,-1934.2 1435.36,-1934.2"/>
<polygon fill="#182b40" stroke="none" points="1436.36,-1935.2 1436.36,-1955.2 1502.81,-1955.2 1502.81,-1935.2 1436.36,-1935.2"/>
<text xml:space="preserve" text-anchor="start" x="1460.34" y="-1943.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1506.81" y="-1943.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1591.17" y="-1942" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get shipment by ID</text>
<polygon fill="#272e3d" stroke="none" points="1435.36,-1912.2 1435.36,-1934.2 1664.64,-1934.2 1664.64,-1912.2 1435.36,-1912.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1435.36,-1912.2 1435.36,-1934.2 1664.64,-1934.2 1664.64,-1912.2 1435.36,-1912.2"/>
<polygon fill="#182b40" stroke="none" points="1436.36,-1913.2 1436.36,-1933.2 1477.77,-1933.2 1477.77,-1913.2 1436.36,-1913.2"/>
<text xml:space="preserve" text-anchor="start" x="1447.81" y="-1921.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1481.77" y="-1921.2" 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="1560.47" y="-1920" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List packages of a shipment</text>
<polygon fill="#2a3242" stroke="none" points="1435.36,-1890.2 1435.36,-1912.2 1664.64,-1912.2 1664.64,-1890.2 1435.36,-1890.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1435.36,-1890.2 1435.36,-1912.2 1664.64,-1912.2 1664.64,-1890.2 1435.36,-1890.2"/>
<polygon fill="#143826" stroke="none" points="1436.36,-1891.2 1436.36,-1911.2 1474.36,-1911.2 1474.36,-1891.2 1436.36,-1891.2"/>
<text xml:space="preserve" text-anchor="start" x="1443.11" y="-1899.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1478.36" y="-1899.2" 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="1550.25" y="-1898" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create package for a shipme…</text>
<polygon fill="#272e3d" stroke="none" points="1435.36,-1868.2 1435.36,-1890.2 1664.64,-1890.2 1664.64,-1868.2 1435.36,-1868.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1435.36,-1868.2 1435.36,-1890.2 1664.64,-1890.2 1664.64,-1868.2 1435.36,-1868.2"/>
<polygon fill="#3a181e" stroke="none" points="1436.36,-1869.2 1436.36,-1889.2 1508.7,-1889.2 1508.7,-1869.2 1436.36,-1869.2"/>
<text xml:space="preserve" text-anchor="start" x="1454.78" y="-1877.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="1512.7" y="-1877.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1601.83" y="-1876" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete shipment</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="M1092.47,-1458.4C1226.6,-1458.4 1058.19,-1662.49 1156.98,-1753.2 1184.72,-1778.67 1288.02,-1768.07 1325,-1775.2 1481.61,-1805.39 1574.84,-1738.21 1672.64,-1864.2 1706.7,-1908.09 1711.76,-1949.76 1672.64,-1989.2 1655.7,-2006.28 1573.09,-2015.22 1553.96,-1998.33"/>
<polygon fill="#5aa7ff" stroke="#5aa7ff" stroke-width="1.4" points="1556.19,-1997.33 1550.93,-1992.11 1551.79,-1999.47 1556.19,-1997.33"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1182.49" y="-1745.1" 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="1060.62,-1956.2 1060.62,-1991.2 1283.38,-1991.2 1283.38,-1956.2 1060.62,-1956.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1060.62,-1956.2 1060.62,-1991.2 1283.38,-1991.2 1283.38,-1956.2 1060.62,-1956.2"/>
<polygon fill="#33415c" stroke="none" points="1062.62,-1985.2 1062.62,-1989.2 1135.54,-1989.2 1135.54,-1985.2 1062.62,-1985.2"/>
<polygon fill="#33415c" stroke="none" points="1135.54,-1985.2 1135.54,-1989.2 1208.46,-1989.2 1208.46,-1985.2 1135.54,-1985.2"/>
<polygon fill="#33415c" stroke="none" points="1208.46,-1985.2 1208.46,-1989.2 1281.38,-1989.2 1281.38,-1985.2 1208.46,-1985.2"/>
<text xml:space="preserve" text-anchor="start" x="1146.34" y="-1972.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Shipping</text>
<text xml:space="preserve" text-anchor="start" x="1153.99" y="-1963.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/shipping</text>
<polygon fill="#2a3242" stroke="none" points="1060.62,-1934.2 1060.62,-1956.2 1283.38,-1956.2 1283.38,-1934.2 1060.62,-1934.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1060.62,-1934.2 1060.62,-1956.2 1283.38,-1956.2 1283.38,-1934.2 1060.62,-1934.2"/>
<polygon fill="#182b40" stroke="none" points="1061.62,-1935.2 1061.62,-1955.2 1102.29,-1955.2 1102.29,-1935.2 1061.62,-1935.2"/>
<text xml:space="preserve" text-anchor="start" x="1072.7" y="-1943.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1106.29" y="-1943.2" 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="1181.87" y="-1942" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List packages of a shipping</text>
<polygon fill="#272e3d" stroke="none" points="1060.62,-1912.2 1060.62,-1934.2 1283.38,-1934.2 1283.38,-1912.2 1060.62,-1912.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1060.62,-1912.2 1060.62,-1934.2 1283.38,-1934.2 1283.38,-1912.2 1060.62,-1912.2"/>
<polygon fill="#143826" stroke="none" points="1061.62,-1913.2 1061.62,-1933.2 1099.62,-1933.2 1099.62,-1913.2 1061.62,-1913.2"/>
<text xml:space="preserve" text-anchor="start" x="1068.37" y="-1921.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1103.62" y="-1921.2" 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="1173.87" y="-1920" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create package for a shippi…</text>
<polygon fill="#2a3242" stroke="none" points="1060.62,-1890.2 1060.62,-1912.2 1283.38,-1912.2 1283.38,-1890.2 1060.62,-1890.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1060.62,-1890.2 1060.62,-1912.2 1283.38,-1912.2 1283.38,-1890.2 1060.62,-1890.2"/>
<polygon fill="#301c44" stroke="none" points="1061.62,-1891.2 1061.62,-1911.2 1129.45,-1911.2 1129.45,-1891.2 1061.62,-1891.2"/>
<text xml:space="preserve" text-anchor="start" x="1080.04" y="-1899.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="1133.45" y="-1899.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1220.56" y="-1898" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update shipping</text>
<polygon fill="#272e3d" stroke="none" points="1060.62,-1868.2 1060.62,-1890.2 1283.38,-1890.2 1283.38,-1868.2 1060.62,-1868.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1060.62,-1868.2 1060.62,-1890.2 1283.38,-1890.2 1283.38,-1868.2 1060.62,-1868.2"/>
<polygon fill="#3a181e" stroke="none" points="1061.62,-1869.2 1061.62,-1889.2 1132.68,-1889.2 1132.68,-1869.2 1061.62,-1869.2"/>
<text xml:space="preserve" text-anchor="start" x="1079.4" y="-1877.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="1136.68" y="-1877.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1223.23" y="-1876" 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="M1092.47,-1458.4C1231.76,-1458.4 1194.83,-1606.42 1225,-1742.4 1245.32,-1833.98 1097.54,-1781.85 1052.62,-1864.2 1026.02,-1912.97 1013.76,-1949.5 1052.62,-1989.2 1064.47,-2001.31 1088.14,-2008.12 1096.27,-1998.78"/>
<polygon fill="#c79bff" stroke="#c79bff" stroke-width="1.4" points="1098.57,-1999.63 1098.42,-1992.21 1093.91,-1998.1 1098.57,-1999.63"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1250.6" y="-1745.1" 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="6079.51,-1403.4 6079.51,-1438.4 6214.49,-1438.4 6214.49,-1403.4 6079.51,-1403.4"/>
<polygon fill="none" stroke="#3f4c5f" points="6079.51,-1403.4 6079.51,-1438.4 6214.49,-1438.4 6214.49,-1403.4 6079.51,-1403.4"/>
<polygon fill="#33415c" stroke="none" points="6081.51,-1432.4 6081.51,-1436.4 6212.49,-1436.4 6212.49,-1432.4 6081.51,-1432.4"/>
<text xml:space="preserve" text-anchor="start" x="6121.99" y="-1419.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Payment</text>
<text xml:space="preserve" text-anchor="start" x="6128.49" y="-1410.3" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/payment</text>
<polygon fill="#2a3242" stroke="none" points="6079.51,-1381.4 6079.51,-1403.4 6214.49,-1403.4 6214.49,-1381.4 6079.51,-1381.4"/>
<polygon fill="none" stroke="#3f4c5f" points="6079.51,-1381.4 6079.51,-1403.4 6214.49,-1403.4 6214.49,-1381.4 6079.51,-1381.4"/>
<polygon fill="#3a181e" stroke="none" points="6080.51,-1382.4 6080.51,-1402.4 6122.01,-1402.4 6122.01,-1382.4 6080.51,-1382.4"/>
<text xml:space="preserve" text-anchor="start" x="6083.51" y="-1390.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="6126.01" y="-1390.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="6153.46" y="-1389.2" 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="M1092.47,-1458.4C1213.79,-1458.4 1116.96,-1636.81 1221,-1699.22 1338.2,-1769.51 3544.52,-1706.44 3681,-1699.22 3953.2,-1684.81 6100.15,-1712.34 6146.25,-1446.17"/>
<polygon fill="#f5c15c" stroke="#f5c15c" stroke-width="1.4" points="6148.66,-1446.7 6146.82,-1439.51 6143.78,-1446.28 6148.66,-1446.7"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2447" y="-1745.1" 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="M1665.64,-1945.2C1986.7,-1945.2 2042.17,-1794.46 2358.98,-1742.4 2411.17,-1733.83 3272.03,-1754.74 3349.27,-1708.4"/>
<polygon fill="#58d18a" stroke="#58d18a" stroke-width="1.4" points="3351.07,-1710.07 3353.49,-1703.06 3347.22,-1707.03 3351.07,-1710.07"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2381.49" y="-1745.1" 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="M1434.36,-1945.2C1344.52,-1945.2 1401.87,-1821.7 1325,-1775.2 1230.88,-1718.26 1172.07,-1811 1078.48,-1753.2 989.6,-1698.31 953.44,-1657.28 951.47,-1556.38"/>
<polygon fill="#8f95ff" stroke="#8f95ff" stroke-width="1.4" points="953.92,-1556.49 951.4,-1549.52 949.02,-1556.54 953.92,-1556.49"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1104.24" y="-1745.1" 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="M1434.36,-1923.2C1404.05,-1923.2 1411.72,-1888.67 1383.38,-1877.9 1363.43,-1870.32 1353.01,-1865.9 1335.36,-1877.9 1291.37,-1907.81 1335.03,-1958.82 1291.38,-1989.2 1278.66,-1998.05 1258.89,-2005.8 1249.79,-2000.42"/>
<polygon fill="#ff8f66" stroke="#ff8f66" stroke-width="1.4" points="1251.06,-1997.37 1245.83,-1992.11 1246.63,-1999.49 1251.06,-1997.37"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1359.37" y="-1880.6" 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="1262.73,-1403.4 1262.73,-1438.4 1397.27,-1438.4 1397.27,-1403.4 1262.73,-1403.4"/>
<polygon fill="none" stroke="#3f4c5f" points="1262.73,-1403.4 1262.73,-1438.4 1397.27,-1438.4 1397.27,-1403.4 1262.73,-1403.4"/>
<polygon fill="#33415c" stroke="none" points="1264.73,-1432.4 1264.73,-1436.4 1395.27,-1436.4 1395.27,-1432.4 1264.73,-1432.4"/>
<text xml:space="preserve" text-anchor="start" x="1305.65" y="-1419.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Package</text>
<text xml:space="preserve" text-anchor="start" x="1311.74" y="-1410.3" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/package</text>
<polygon fill="#2a3242" stroke="none" points="1262.73,-1381.4 1262.73,-1403.4 1397.27,-1403.4 1397.27,-1381.4 1262.73,-1381.4"/>
<polygon fill="none" stroke="#3f4c5f" points="1262.73,-1381.4 1262.73,-1403.4 1397.27,-1403.4 1397.27,-1381.4 1262.73,-1381.4"/>
<polygon fill="#3a181e" stroke="none" points="1263.73,-1382.4 1263.73,-1402.4 1305.23,-1402.4 1305.23,-1382.4 1263.73,-1382.4"/>
<text xml:space="preserve" text-anchor="start" x="1266.73" y="-1390.7" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="1309.23" y="-1390.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1336.68" y="-1389.2" 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="M1284.38,-1945.2C1420.71,-1945.2 1335.71,-1549.8 1330.27,-1446.46"/>
<polygon fill="#4fc4e8" stroke="#4fc4e8" stroke-width="1.4" points="1332.72,-1446.44 1330.06,-1439.52 1327.82,-1446.59 1332.72,-1446.44"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1385.22" y="-1745.1" 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="M1406.2,-1409.9C1636.84,-1409.9 1603.86,-1174.31 1822,-1099.4 1879.34,-1079.71 2870.57,-1120.7 2913,-1077.4 3026.05,-962.05 2577.18,-1123.95 2560.48,-974.42"/>
<polygon fill="#ff6f6f" stroke="#ff6f6f" stroke-width="1.4" points="2562.95,-974.57 2560.12,-967.72 2558.05,-974.84 2562.95,-974.57"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2943.04" y="-1069.3" 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="M1253.8,-1409.9C1087.38,-1409.9 1383.33,-1581.54 1426,-1742.4 1427.23,-1747.04 1428.26,-1748.97 1426,-1753.2 1417.68,-1768.74 1404.53,-1761.87 1393,-1775.2 1324.12,-1854.84 1380.14,-1932.57 1291.38,-1989.2 1271.63,-2001.8 1193.71,-2013.61 1175.72,-1997.95"/>
<polygon fill="#a98cff" stroke="#a98cff" stroke-width="1.4" points="1178.16,-1997.36 1172.92,-1992.11 1173.74,-1999.48 1178.16,-1997.36"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1452.86" y="-1745.1" 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="1139.2,-2294 1139.2,-2329 1304.8,-2329 1304.8,-2294 1139.2,-2294"/>
<polygon fill="none" stroke="#3f4c5f" points="1139.2,-2294 1139.2,-2329 1304.8,-2329 1304.8,-2294 1139.2,-2294"/>
<polygon fill="#33415c" stroke="none" points="1141.2,-2323 1141.2,-2327 1302.8,-2327 1302.8,-2323 1141.2,-2323"/>
<text xml:space="preserve" text-anchor="start" x="1205.66" y="-2310.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Stock</text>
<text xml:space="preserve" text-anchor="start" x="1210.25" y="-2300.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/stock</text>
<polygon fill="#2a3242" stroke="none" points="1139.2,-2272 1139.2,-2294 1304.8,-2294 1304.8,-2272 1139.2,-2272"/>
<polygon fill="none" stroke="#3f4c5f" points="1139.2,-2272 1139.2,-2294 1304.8,-2294 1304.8,-2272 1139.2,-2272"/>
<polygon fill="#143826" stroke="none" points="1140.2,-2273 1140.2,-2293 1178.2,-2293 1178.2,-2273 1140.2,-2273"/>
<text xml:space="preserve" text-anchor="start" x="1146.95" y="-2281.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1182.2" y="-2281" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/adjust</text>
<text xml:space="preserve" text-anchor="start" x="1222.43" y="-2279.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Adjust stock manually</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="M1305.8,-2283C1329.48,-2283 1299.47,-2192.93 1317,-2177 1362.76,-2135.41 3499.49,-2198.94 3543,-2155 3546.38,-2151.59 3546.39,-2147.6 3543,-2144.2 3519.26,-2120.38 1145.73,-2160.02 1121.99,-2136.2 1008.73,-2022.56 1009.34,-1889.45 1121.99,-1775.2 1137.21,-1759.77 2660.35,-1754.16 2682,-1753.2 2691.02,-1752.8 3288.44,-1716.43 3367.74,-1703.73"/>
<polygon fill="#ffb25a" stroke="#ffb25a" stroke-width="1.4" points="3368.23,-1706.13 3374.35,-1701.95 3366.96,-1701.4 3368.23,-1706.13"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1134" y="-1927" 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="M1305.8,-2283C1317.64,-2283 1315.35,-2188.73 1317,-2177 1328.36,-2096.45 1348.52,-2075.92 1349.92,-1998.86"/>
<polygon fill="#66b3ff" stroke="#66b3ff" stroke-width="1.4" points="1352.37,-1999.34 1349.98,-1992.32 1347.47,-1999.3 1352.37,-1999.34"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1339.65" y="-2146.9" 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="1348.03,-2360 1348.03,-2395 1519.97,-2395 1519.97,-2360 1348.03,-2360"/>
<polygon fill="none" stroke="#3f4c5f" points="1348.03,-2360 1348.03,-2395 1519.97,-2395 1519.97,-2360 1348.03,-2360"/>
<polygon fill="#33415c" stroke="none" points="1350.03,-2389 1350.03,-2393 1434,-2393 1434,-2389 1350.03,-2389"/>
<polygon fill="#33415c" stroke="none" points="1434,-2389 1434,-2393 1517.97,-2393 1517.97,-2389 1434,-2389"/>
<text xml:space="preserve" text-anchor="start" x="1401.66" y="-2376.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Warehouse</text>
<text xml:space="preserve" text-anchor="start" x="1410.74" y="-2366.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/warehouse</text>
<polygon fill="#2a3242" stroke="none" points="1348.03,-2338 1348.03,-2360 1519.97,-2360 1519.97,-2338 1348.03,-2338"/>
<polygon fill="none" stroke="#3f4c5f" points="1348.03,-2338 1348.03,-2360 1519.97,-2360 1519.97,-2338 1348.03,-2338"/>
<polygon fill="#182b40" stroke="none" points="1349.03,-2339 1349.03,-2359 1405.48,-2359 1405.48,-2339 1349.03,-2339"/>
<text xml:space="preserve" text-anchor="start" x="1368" y="-2347.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1409.48" y="-2347" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1457.16" y="-2345.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List warehouses</text>
<polygon fill="#272e3d" stroke="none" points="1348.03,-2316 1348.03,-2338 1519.97,-2338 1519.97,-2316 1348.03,-2316"/>
<polygon fill="none" stroke="#3f4c5f" points="1348.03,-2316 1348.03,-2338 1519.97,-2338 1519.97,-2316 1348.03,-2316"/>
<polygon fill="#143826" stroke="none" points="1349.03,-2317 1349.03,-2337 1402.96,-2337 1402.96,-2317 1349.03,-2317"/>
<text xml:space="preserve" text-anchor="start" x="1363.74" y="-2325.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1406.96" y="-2325" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1449.6" y="-2323.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create warehouse</text>
<polygon fill="#2a3242" stroke="none" points="1348.03,-2294 1348.03,-2316 1519.97,-2316 1519.97,-2294 1348.03,-2294"/>
<polygon fill="none" stroke="#3f4c5f" points="1348.03,-2294 1348.03,-2316 1519.97,-2316 1519.97,-2294 1348.03,-2294"/>
<polygon fill="#182b40" stroke="none" points="1349.03,-2295 1349.03,-2315 1394.14,-2315 1394.14,-2295 1349.03,-2295"/>
<text xml:space="preserve" text-anchor="start" x="1362.34" y="-2303.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1398.14" y="-2303" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1439.82" y="-2301.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get warehouse by ID</text>
<polygon fill="#272e3d" stroke="none" points="1348.03,-2272 1348.03,-2294 1519.97,-2294 1519.97,-2272 1348.03,-2272"/>
<polygon fill="none" stroke="#3f4c5f" points="1348.03,-2272 1348.03,-2294 1519.97,-2294 1519.97,-2272 1348.03,-2272"/>
<polygon fill="#3b2c12" stroke="none" points="1349.03,-2273 1349.03,-2293 1396.81,-2293 1396.81,-2273 1349.03,-2273"/>
<text xml:space="preserve" text-anchor="start" x="1363.92" y="-2281.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="1400.81" y="-2281" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1447.82" y="-2279.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update warehouse</text>
<polygon fill="#2a3242" stroke="none" points="1348.03,-2250 1348.03,-2272 1519.97,-2272 1519.97,-2250 1348.03,-2250"/>
<polygon fill="none" stroke="#3f4c5f" points="1348.03,-2250 1348.03,-2272 1519.97,-2272 1519.97,-2250 1348.03,-2250"/>
<polygon fill="#3b2c12" stroke="none" points="1349.03,-2251 1349.03,-2271 1391.48,-2271 1391.48,-2251 1349.03,-2251"/>
<text xml:space="preserve" text-anchor="start" x="1361.25" y="-2259.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="1395.48" y="-2259" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="1440.71" y="-2257.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder warehouses</text>
<polygon fill="#272e3d" stroke="none" points="1348.03,-2228 1348.03,-2250 1519.97,-2250 1519.97,-2228 1348.03,-2228"/>
<polygon fill="none" stroke="#3f4c5f" points="1348.03,-2228 1348.03,-2250 1519.97,-2250 1519.97,-2228 1348.03,-2228"/>
<polygon fill="#301c44" stroke="none" points="1349.03,-2229 1349.03,-2249 1387.03,-2249 1387.03,-2229 1349.03,-2229"/>
<text xml:space="preserve" text-anchor="start" x="1352.53" y="-2237.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="1391.03" y="-2237" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1418.48" y="-2235.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update warehouse (partial)</text>
<polygon fill="#2a3242" stroke="none" points="1348.03,-2206 1348.03,-2228 1519.97,-2228 1519.97,-2206 1348.03,-2206"/>
<polygon fill="none" stroke="#3f4c5f" points="1348.03,-2206 1348.03,-2228 1519.97,-2228 1519.97,-2206 1348.03,-2206"/>
<polygon fill="#3a181e" stroke="none" points="1349.03,-2207 1349.03,-2227 1400.03,-2227 1400.03,-2207 1349.03,-2207"/>
<text xml:space="preserve" text-anchor="start" x="1356.78" y="-2215.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="1404.03" y="-2215" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="1450.49" y="-2213.8" 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="M1295.64,-2283C1295.64,-2283 1362.36,-2359.84 1384.77,-2385.66"/>
<polygon fill="#56d68a" stroke="#56d68a" stroke-width="1.4" points="1384.19,-2388.72 1390.62,-2392.4 1387.89,-2385.51 1384.19,-2388.72"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="1326.41" y="-2352.23" 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="M1186.61,-1945.2C1150.61,-1945.2 1165.16,-1892.34 1187.61,-1864.2 1292.92,-1732.19 1389.43,-1796.12 1557,-1775.2 1658.06,-1762.58 3293.18,-1784.77 3390,-1753.2 3424.66,-1741.9 3457.03,-1741.16 3462.11,-1710.4"/>
<polygon fill="#c79bff" stroke="#c79bff" stroke-width="1.4" points="3464.55,-1710.68 3462.64,-1703.51 3459.66,-1710.3 3464.55,-1710.68"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3439.26" y="-1745.1" 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="M1186.61,-1945.2C1001.4,-1945.2 1375.03,-2101.68 1557,-2136.2 1567.6,-2138.21 2326.41,-2136.53 2334,-2144.2 2401.67,-2212.57 1533,-2476.09 1478.65,-2402.22"/>
<polygon fill="#ff6b6b" stroke="#ff6b6b" stroke-width="1.4" points="1481.12,-2401.92 1476.64,-2396.02 1476.46,-2403.43 1481.12,-2401.92"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2368.52" y="-2146.9" 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="6089.84,-810.6 6089.84,-845.6 6222.16,-845.6 6222.16,-810.6 6089.84,-810.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6089.84,-810.6 6089.84,-845.6 6222.16,-845.6 6222.16,-810.6 6089.84,-810.6"/>
<polygon fill="#33415c" stroke="none" points="6091.84,-839.6 6091.84,-843.6 6220.16,-843.6 6220.16,-839.6 6091.84,-839.6"/>
<text xml:space="preserve" text-anchor="start" x="6132" y="-826.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Account</text>
<text xml:space="preserve" text-anchor="start" x="6138.99" y="-817.5" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/account</text>
<polygon fill="#2a3242" stroke="none" points="6089.84,-788.6 6089.84,-810.6 6222.16,-810.6 6222.16,-788.6 6089.84,-788.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6089.84,-788.6 6089.84,-810.6 6222.16,-810.6 6222.16,-788.6 6089.84,-788.6"/>
<polygon fill="#182b40" stroke="none" points="6090.84,-789.6 6090.84,-809.6 6137.79,-809.6 6137.79,-789.6 6090.84,-789.6"/>
<text xml:space="preserve" text-anchor="start" x="6105.06" y="-797.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6141.79" y="-797.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="6170.47" y="-796.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List accounts</text>
<polygon fill="#272e3d" stroke="none" points="6089.84,-766.6 6089.84,-788.6 6222.16,-788.6 6222.16,-766.6 6089.84,-766.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6089.84,-766.6 6089.84,-788.6 6222.16,-788.6 6222.16,-766.6 6089.84,-766.6"/>
<polygon fill="#143826" stroke="none" points="6090.84,-767.6 6090.84,-787.6 6135.27,-787.6 6135.27,-767.6 6090.84,-767.6"/>
<text xml:space="preserve" text-anchor="start" x="6100.8" y="-775.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6139.27" y="-775.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="6162.91" y="-774.4" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create account</text>
<polygon fill="#2a3242" stroke="none" points="6089.84,-744.6 6089.84,-766.6 6222.16,-766.6 6222.16,-744.6 6089.84,-744.6"/>
<polygon fill="none" stroke="#3f4c5f" points="6089.84,-744.6 6089.84,-766.6 6222.16,-766.6 6222.16,-744.6 6089.84,-744.6"/>
<polygon fill="#3a181e" stroke="none" points="6090.84,-745.6 6090.84,-765.6 6132.34,-765.6 6132.34,-745.6 6090.84,-745.6"/>
<text xml:space="preserve" text-anchor="start" x="6093.84" y="-753.9" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="6136.34" y="-753.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="6163.79" y="-752.4" 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="M6223.16,-799.6C6339.74,-799.6 6273.69,-646.27 6372,-583.6 6491.67,-507.3 6990.93,-601.62 7012.33,-469.81"/>
<polygon fill="#ffb25a" stroke="#ffb25a" stroke-width="1.4" points="7014.77,-470.08 7012.87,-462.91 7009.88,-469.7 7014.77,-470.08"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6564.07" y="-553.5" 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="M6070.58,-1409.9C5000.79,-1409.9 4748.85,-1634.81 3681,-1699.22 3408.16,-1715.67 1474.74,-1800.83 1221,-1699.22 1133.09,-1664.01 1066.15,-1646.28 1062.05,-1556.33"/>
<polygon fill="#ff5f9e" stroke="#ff5f9e" stroke-width="1.4" points="1064.51,-1556.46 1061.9,-1549.52 1059.61,-1556.57 1064.51,-1556.46"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="2447" y="-1745.1" 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="M6223.42,-1409.9C6347.09,-1409.9 6164.55,-990.6 6156.29,-853.59"/>
<polygon fill="#56c8c8" stroke="#56c8c8" stroke-width="1.4" points="6158.74,-853.64 6156.07,-846.72 6153.84,-853.79 6158.74,-853.64"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6233.38" y="-1069.3" 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="5873.46,-373.8 5873.46,-404.8 6076.54,-404.8 6076.54,-373.8 5873.46,-373.8"/>
<polygon fill="none" stroke="#3f4c5f" points="5873.46,-373.8 5873.46,-404.8 6076.54,-404.8 6076.54,-373.8 5873.46,-373.8"/>
<text xml:space="preserve" text-anchor="start" x="5955.99" y="-390" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Serper</text>
<text xml:space="preserve" text-anchor="start" x="5960.99" y="-380.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/serper</text>
<polygon fill="#2a3242" stroke="none" points="5873.46,-351.8 5873.46,-373.8 6076.54,-373.8 6076.54,-351.8 5873.46,-351.8"/>
<polygon fill="none" stroke="#3f4c5f" points="5873.46,-351.8 5873.46,-373.8 6076.54,-373.8 6076.54,-351.8 5873.46,-351.8"/>
<polygon fill="#143826" stroke="none" points="5874.46,-352.8 5874.46,-372.8 5914.33,-372.8 5914.33,-352.8 5874.46,-352.8"/>
<text xml:space="preserve" text-anchor="start" x="5882.14" y="-361.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5918.33" y="-360.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/image</text>
<text xml:space="preserve" text-anchor="start" x="5961.73" y="-359.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Crawl image from URL, crop …</text>
<polygon fill="#272e3d" stroke="none" points="5873.46,-329.8 5873.46,-351.8 6076.54,-351.8 6076.54,-329.8 5873.46,-329.8"/>
<polygon fill="none" stroke="#3f4c5f" points="5873.46,-329.8 5873.46,-351.8 6076.54,-351.8 6076.54,-329.8 5873.46,-329.8"/>
<polygon fill="#143826" stroke="none" points="5874.46,-330.8 5874.46,-350.8 5912.46,-350.8 5912.46,-330.8 5874.46,-330.8"/>
<text xml:space="preserve" text-anchor="start" x="5881.21" y="-339.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="5916.46" y="-338.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/images</text>
<text xml:space="preserve" text-anchor="start" x="5961.7" y="-337.6" 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="6160.58,-437.8 6160.58,-472.8 6359.42,-472.8 6359.42,-437.8 6160.58,-437.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6160.58,-437.8 6160.58,-472.8 6359.42,-472.8 6359.42,-437.8 6160.58,-437.8"/>
<polygon fill="#33415c" stroke="none" points="6162.58,-466.8 6162.58,-470.8 6357.42,-470.8 6357.42,-466.8 6162.58,-466.8"/>
<text xml:space="preserve" text-anchor="start" x="6250.66" y="-454" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Vfs</text>
<text xml:space="preserve" text-anchor="start" x="6253" y="-444.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/vfs</text>
<polygon fill="#2a3242" stroke="none" points="6160.58,-415.8 6160.58,-437.8 6359.42,-437.8 6359.42,-415.8 6160.58,-415.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6160.58,-415.8 6160.58,-437.8 6359.42,-437.8 6359.42,-415.8 6160.58,-415.8"/>
<polygon fill="#182b40" stroke="none" points="6161.58,-416.8 6161.58,-436.8 6216.78,-436.8 6216.78,-416.8 6161.58,-416.8"/>
<text xml:space="preserve" text-anchor="start" x="6179.93" y="-425.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6220.78" y="-424.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="6265.95" y="-423.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List virtual filesystem fil…</text>
<polygon fill="#272e3d" stroke="none" points="6160.58,-393.8 6160.58,-415.8 6359.42,-415.8 6359.42,-393.8 6160.58,-393.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6160.58,-393.8 6160.58,-415.8 6359.42,-415.8 6359.42,-393.8 6160.58,-393.8"/>
<polygon fill="#182b40" stroke="none" points="6161.58,-394.8 6161.58,-414.8 6204.07,-414.8 6204.07,-394.8 6161.58,-394.8"/>
<text xml:space="preserve" text-anchor="start" x="6173.58" y="-403.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="6208.07" y="-402.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{*path}</text>
<text xml:space="preserve" text-anchor="start" x="6260.61" y="-401.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get a virtual filesystem fi…</text>
<polygon fill="#2a3242" stroke="none" points="6160.58,-371.8 6160.58,-393.8 6359.42,-393.8 6359.42,-371.8 6160.58,-371.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6160.58,-371.8 6160.58,-393.8 6359.42,-393.8 6359.42,-371.8 6160.58,-371.8"/>
<polygon fill="#143826" stroke="none" points="6161.58,-372.8 6161.58,-392.8 6203.03,-392.8 6203.03,-372.8 6161.58,-372.8"/>
<text xml:space="preserve" text-anchor="start" x="6170.05" y="-381.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6207.03" y="-380.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{*path}</text>
<text xml:space="preserve" text-anchor="start" x="6257.49" y="-379.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Execute a virtual filesyste…</text>
<polygon fill="#272e3d" stroke="none" points="6160.58,-349.8 6160.58,-371.8 6359.42,-371.8 6359.42,-349.8 6160.58,-349.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6160.58,-349.8 6160.58,-371.8 6359.42,-371.8 6359.42,-349.8 6160.58,-349.8"/>
<polygon fill="#143826" stroke="none" points="6161.58,-350.8 6161.58,-370.8 6205.33,-370.8 6205.33,-350.8 6161.58,-350.8"/>
<text xml:space="preserve" text-anchor="start" x="6171.2" y="-359.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6209.33" y="-358.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/mkdir</text>
<text xml:space="preserve" text-anchor="start" x="6258.83" y="-357.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create directory in virtual…</text>
<polygon fill="#2a3242" stroke="none" points="6160.58,-327.8 6160.58,-349.8 6359.42,-349.8 6359.42,-327.8 6160.58,-327.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6160.58,-327.8 6160.58,-349.8 6359.42,-349.8 6359.42,-327.8 6160.58,-327.8"/>
<polygon fill="#143826" stroke="none" points="6161.58,-328.8 6161.58,-348.8 6199.58,-348.8 6199.58,-328.8 6161.58,-328.8"/>
<text xml:space="preserve" text-anchor="start" x="6168.33" y="-337.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6203.58" y="-336.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/rename</text>
<text xml:space="preserve" text-anchor="start" x="6249.94" y="-335.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Rename or move a virtual fi…</text>
<polygon fill="#272e3d" stroke="none" points="6160.58,-305.8 6160.58,-327.8 6359.42,-327.8 6359.42,-305.8 6160.58,-305.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6160.58,-305.8 6160.58,-327.8 6359.42,-327.8 6359.42,-305.8 6160.58,-305.8"/>
<polygon fill="#143826" stroke="none" points="6161.58,-306.8 6161.58,-326.8 6205.7,-326.8 6205.7,-306.8 6161.58,-306.8"/>
<text xml:space="preserve" text-anchor="start" x="6171.39" y="-315.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="6209.7" y="-314.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/upload</text>
<text xml:space="preserve" text-anchor="start" x="6265.49" y="-313.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Upload files to virtual fil…</text>
<polygon fill="#2a3242" stroke="none" points="6160.58,-283.8 6160.58,-305.8 6359.42,-305.8 6359.42,-283.8 6160.58,-283.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6160.58,-283.8 6160.58,-305.8 6359.42,-305.8 6359.42,-283.8 6160.58,-283.8"/>
<polygon fill="#3b2c12" stroke="none" points="6161.58,-284.8 6161.58,-304.8 6202.44,-304.8 6202.44,-284.8 6161.58,-284.8"/>
<text xml:space="preserve" text-anchor="start" x="6173.01" y="-293.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="6206.44" y="-292.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{*path}</text>
<text xml:space="preserve" text-anchor="start" x="6255.72" y="-291.6" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create or overwrite a virtu…</text>
<polygon fill="#272e3d" stroke="none" points="6160.58,-261.8 6160.58,-283.8 6359.42,-283.8 6359.42,-261.8 6160.58,-261.8"/>
<polygon fill="none" stroke="#3f4c5f" points="6160.58,-261.8 6160.58,-283.8 6359.42,-283.8 6359.42,-261.8 6160.58,-261.8"/>
<polygon fill="#3a181e" stroke="none" points="6161.58,-262.8 6161.58,-282.8 6205.07,-282.8 6205.07,-262.8 6161.58,-262.8"/>
<text xml:space="preserve" text-anchor="start" x="6165.57" y="-271.1" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="6209.07" y="-270.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{*path}</text>
<text xml:space="preserve" text-anchor="start" x="6256.61" y="-269.6" 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="3530.03,-2371 3530.03,-2406 3815.97,-2406 3815.97,-2371 3530.03,-2371"/>
<polygon fill="none" stroke="#3f4c5f" points="3530.03,-2371 3530.03,-2406 3815.97,-2406 3815.97,-2371 3530.03,-2371"/>
<polygon fill="#33415c" stroke="none" points="3532.03,-2400 3532.03,-2404 3813.97,-2404 3813.97,-2400 3532.03,-2400"/>
<text xml:space="preserve" text-anchor="start" x="3635.32" y="-2387.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">POSTerminal</text>
<text xml:space="preserve" text-anchor="start" x="3648.49" y="-2377.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/posterminal</text>
<polygon fill="#2a3242" stroke="none" points="3530.03,-2349 3530.03,-2371 3815.97,-2371 3815.97,-2349 3530.03,-2349"/>
<polygon fill="none" stroke="#3f4c5f" points="3530.03,-2349 3530.03,-2371 3815.97,-2371 3815.97,-2349 3530.03,-2349"/>
<polygon fill="#182b40" stroke="none" points="3531.03,-2350 3531.03,-2370 3622.67,-2370 3622.67,-2350 3531.03,-2350"/>
<text xml:space="preserve" text-anchor="start" x="3567.6" y="-2358.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3626.67" y="-2358" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3744.72" y="-2356.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List POS terminals</text>
<polygon fill="#272e3d" stroke="none" points="3530.03,-2327 3530.03,-2349 3815.97,-2349 3815.97,-2327 3530.03,-2327"/>
<polygon fill="none" stroke="#3f4c5f" points="3530.03,-2327 3530.03,-2349 3815.97,-2349 3815.97,-2327 3530.03,-2327"/>
<polygon fill="#3b2c12" stroke="none" points="3531.03,-2328 3531.03,-2348 3620.15,-2348 3620.15,-2328 3531.03,-2328"/>
<text xml:space="preserve" text-anchor="start" x="3566.59" y="-2336.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3624.15" y="-2336" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3737.16" y="-2334.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create POS terminal</text>
<polygon fill="#2a3242" stroke="none" points="3530.03,-2305 3530.03,-2327 3815.97,-2327 3815.97,-2305 3530.03,-2305"/>
<polygon fill="none" stroke="#3f4c5f" points="3530.03,-2305 3530.03,-2327 3815.97,-2327 3815.97,-2305 3530.03,-2305"/>
<polygon fill="#3b2c12" stroke="none" points="3531.03,-2306 3531.03,-2326 3600.91,-2326 3600.91,-2306 3531.03,-2306"/>
<text xml:space="preserve" text-anchor="start" x="3556.97" y="-2314.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3604.91" y="-2314" 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="3710.01" y="-2312.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Enable all categories on te…</text>
<polygon fill="#272e3d" stroke="none" points="3530.03,-2283 3530.03,-2305 3815.97,-2305 3815.97,-2283 3530.03,-2283"/>
<polygon fill="none" stroke="#3f4c5f" points="3530.03,-2283 3530.03,-2305 3815.97,-2305 3815.97,-2283 3530.03,-2283"/>
<polygon fill="#3b2c12" stroke="none" points="3531.03,-2284 3531.03,-2304 3570.79,-2304 3570.79,-2284 3531.03,-2284"/>
<text xml:space="preserve" text-anchor="start" x="3541.91" y="-2292.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3574.79" y="-2292" 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="3711.35" y="-2290.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Enable category on terminal</text>
<polygon fill="#2a3242" stroke="none" points="3530.03,-2261 3530.03,-2283 3815.97,-2283 3815.97,-2261 3530.03,-2261"/>
<polygon fill="none" stroke="#3f4c5f" points="3530.03,-2261 3530.03,-2283 3815.97,-2283 3815.97,-2261 3530.03,-2261"/>
<polygon fill="#301c44" stroke="none" points="3531.03,-2262 3531.03,-2282 3614,-2282 3614,-2262 3531.03,-2262"/>
<text xml:space="preserve" text-anchor="start" x="3557.02" y="-2270.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="3618" y="-2270" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3735.38" y="-2268.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update POS terminal</text>
<polygon fill="#272e3d" stroke="none" points="3530.03,-2239 3530.03,-2261 3815.97,-2261 3815.97,-2239 3530.03,-2239"/>
<polygon fill="none" stroke="#3f4c5f" points="3530.03,-2239 3530.03,-2261 3815.97,-2261 3815.97,-2239 3530.03,-2239"/>
<polygon fill="#3a181e" stroke="none" points="3531.03,-2240 3531.03,-2260 3617.23,-2260 3617.23,-2240 3531.03,-2240"/>
<text xml:space="preserve" text-anchor="start" x="3556.38" y="-2248.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3621.23" y="-2248" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3738.05" y="-2246.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Delete POS terminal</text>
<polygon fill="#2a3242" stroke="none" points="3530.03,-2217 3530.03,-2239 3815.97,-2239 3815.97,-2217 3530.03,-2217"/>
<polygon fill="none" stroke="#3f4c5f" points="3530.03,-2217 3530.03,-2239 3815.97,-2239 3815.97,-2217 3530.03,-2217"/>
<polygon fill="#3a181e" stroke="none" points="3531.03,-2218 3531.03,-2238 3604.14,-2238 3604.14,-2218 3531.03,-2218"/>
<text xml:space="preserve" text-anchor="start" x="3549.84" y="-2226.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3608.14" y="-2226" 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="3712.69" y="-2224.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Disable all categories on t…</text>
<polygon fill="#272e3d" stroke="none" points="3530.03,-2195 3530.03,-2217 3815.97,-2217 3815.97,-2195 3530.03,-2195"/>
<polygon fill="none" stroke="#3f4c5f" points="3530.03,-2195 3530.03,-2217 3815.97,-2217 3815.97,-2195 3530.03,-2195"/>
<polygon fill="#3a181e" stroke="none" points="3531.03,-2196 3531.03,-2216 3572.54,-2216 3572.54,-2196 3531.03,-2196"/>
<text xml:space="preserve" text-anchor="start" x="3534.03" y="-2204.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3576.54" y="-2204" 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="3709.58" y="-2202.8" 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="M3816.97,-2360C4527.97,-2360 6395.41,-2152.56 6949,-1706.4 7386.25,-1354.01 7821.11,-980.87 7460,-550.8 7313.29,-376.08 6957.21,-683.69 6947.84,-469.66"/>
<polygon fill="#5aa7ff" stroke="#5aa7ff" stroke-width="1.4" points="6950.3,-469.86 6947.7,-462.92 6945.4,-469.97 6950.3,-469.86"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="7563.27" y="-1407.2" 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="M3529.03,-2360C3453.92,-2360 3478.66,-2245.79 3530.03,-2191 3608.18,-2107.66 4122.42,-2225.34 4042,-2144.2 4033.28,-2135.4 3162.05,-2139.07 3150,-2136.2 3064.12,-2115.74 2972.13,-2135.13 2966.11,-2053.93"/>
<polygon fill="#f5c15c" stroke="#f5c15c" stroke-width="1.4" points="2968.57,-2054.23 2965.88,-2047.32 2963.68,-2054.4 2968.57,-2054.23"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4082.25" y="-2146.9" 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="4026.26,-2362 4026.26,-2393 4181.74,-2393 4181.74,-2362 4026.26,-2362"/>
<polygon fill="none" stroke="#3f4c5f" points="4026.26,-2362 4026.26,-2393 4181.74,-2393 4181.74,-2362 4026.26,-2362"/>
<text xml:space="preserve" text-anchor="start" x="4084.66" y="-2378.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Printer</text>
<text xml:space="preserve" text-anchor="start" x="4089.99" y="-2368.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/printer</text>
<polygon fill="#2a3242" stroke="none" points="4026.26,-2340 4026.26,-2362 4181.74,-2362 4181.74,-2340 4026.26,-2340"/>
<polygon fill="none" stroke="#3f4c5f" points="4026.26,-2340 4026.26,-2362 4181.74,-2362 4181.74,-2340 4026.26,-2340"/>
<polygon fill="#182b40" stroke="none" points="4027.26,-2341 4027.26,-2361 4083.71,-2361 4083.71,-2341 4027.26,-2341"/>
<text xml:space="preserve" text-anchor="start" x="4046.23" y="-2349.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4087.71" y="-2349" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="4135.39" y="-2347.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List printers</text>
<polygon fill="#272e3d" stroke="none" points="4026.26,-2318 4026.26,-2340 4181.74,-2340 4181.74,-2318 4026.26,-2318"/>
<polygon fill="none" stroke="#3f4c5f" points="4026.26,-2318 4026.26,-2340 4181.74,-2340 4181.74,-2318 4026.26,-2318"/>
<polygon fill="#143826" stroke="none" points="4027.26,-2319 4027.26,-2339 4081.19,-2339 4081.19,-2319 4027.26,-2319"/>
<text xml:space="preserve" text-anchor="start" x="4041.97" y="-2327.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="4085.19" y="-2327" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="4127.83" y="-2325.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create printer</text>
<polygon fill="#2a3242" stroke="none" points="4026.26,-2296 4026.26,-2318 4181.74,-2318 4181.74,-2296 4026.26,-2296"/>
<polygon fill="none" stroke="#3f4c5f" points="4026.26,-2296 4026.26,-2318 4181.74,-2318 4181.74,-2296 4026.26,-2296"/>
<polygon fill="#182b40" stroke="none" points="4027.26,-2297 4027.26,-2317 4072.37,-2317 4072.37,-2297 4027.26,-2297"/>
<text xml:space="preserve" text-anchor="start" x="4040.57" y="-2305.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="4076.37" y="-2305" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4118.05" y="-2303.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get printer by ID</text>
<polygon fill="#272e3d" stroke="none" points="4026.26,-2274 4026.26,-2296 4181.74,-2296 4181.74,-2274 4026.26,-2274"/>
<polygon fill="none" stroke="#3f4c5f" points="4026.26,-2274 4026.26,-2296 4181.74,-2296 4181.74,-2274 4026.26,-2274"/>
<polygon fill="#3b2c12" stroke="none" points="4027.26,-2275 4027.26,-2295 4075.04,-2295 4075.04,-2275 4027.26,-2275"/>
<text xml:space="preserve" text-anchor="start" x="4042.15" y="-2283.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="4079.04" y="-2283" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4126.05" y="-2281.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update printer</text>
<polygon fill="#2a3242" stroke="none" points="4026.26,-2252 4026.26,-2274 4181.74,-2274 4181.74,-2252 4026.26,-2252"/>
<polygon fill="none" stroke="#3f4c5f" points="4026.26,-2252 4026.26,-2274 4181.74,-2274 4181.74,-2252 4026.26,-2252"/>
<polygon fill="#3b2c12" stroke="none" points="4027.26,-2253 4027.26,-2273 4069.71,-2273 4069.71,-2253 4027.26,-2253"/>
<text xml:space="preserve" text-anchor="start" x="4039.48" y="-2261.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="4073.71" y="-2261" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/order</text>
<text xml:space="preserve" text-anchor="start" x="4118.94" y="-2259.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Reorder printers</text>
<polygon fill="#272e3d" stroke="none" points="4026.26,-2230 4026.26,-2252 4181.74,-2252 4181.74,-2230 4026.26,-2230"/>
<polygon fill="none" stroke="#3f4c5f" points="4026.26,-2230 4026.26,-2252 4181.74,-2252 4181.74,-2230 4026.26,-2230"/>
<polygon fill="#301c44" stroke="none" points="4027.26,-2231 4027.26,-2251 4065.26,-2251 4065.26,-2231 4027.26,-2231"/>
<text xml:space="preserve" text-anchor="start" x="4030.76" y="-2239.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="4069.26" y="-2239" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4096.71" y="-2237.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update printer (partial)</text>
<polygon fill="#2a3242" stroke="none" points="4026.26,-2208 4026.26,-2230 4181.74,-2230 4181.74,-2208 4026.26,-2208"/>
<polygon fill="none" stroke="#3f4c5f" points="4026.26,-2208 4026.26,-2230 4181.74,-2230 4181.74,-2208 4026.26,-2208"/>
<polygon fill="#3a181e" stroke="none" points="4027.26,-2209 4027.26,-2229 4078.26,-2229 4078.26,-2209 4027.26,-2209"/>
<text xml:space="preserve" text-anchor="start" x="4035.01" y="-2217.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="4082.26" y="-2217" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="4128.72" y="-2215.8" 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="M4182.74,-2351C4199.08,-2351 4187.35,-2219.34 4181.74,-2204 4169.88,-2171.53 4163.18,-2159.14 4132,-2144.2 4107.85,-2132.63 3668.78,-2155.29 3650,-2136.2 3527.27,-2011.41 3523.76,-1859.34 3654,-1742.4 3761.45,-1645.93 6136.35,-1791.52 6253,-1706.4 6678.24,-1396.12 6209.8,-900.67 6630,-583.6 6672.44,-551.58 7071.28,-600.05 7108,-561.6 7111.32,-558.13 7110.21,-555.06 7108,-550.8 7077.54,-492.06 6989.18,-526.6 6980.96,-469.86"/>
<polygon fill="#c79bff" stroke="#c79bff" stroke-width="1.4" points="6983.41,-469.73 6980.49,-462.91 6978.52,-470.06 6983.41,-469.73"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6475.48" y="-1407.2" 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="3227.69,-2349 3227.69,-2384 3406.31,-2384 3406.31,-2349 3227.69,-2349"/>
<polygon fill="none" stroke="#3f4c5f" points="3227.69,-2349 3227.69,-2384 3406.31,-2384 3406.31,-2349 3227.69,-2349"/>
<polygon fill="#33415c" stroke="none" points="3229.69,-2378 3229.69,-2382 3404.31,-2382 3404.31,-2378 3229.69,-2378"/>
<text xml:space="preserve" text-anchor="start" x="3274.99" y="-2365.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">LabelTemplate</text>
<text xml:space="preserve" text-anchor="start" x="3288.98" y="-2355.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/labeltemplate</text>
<polygon fill="#2a3242" stroke="none" points="3227.69,-2327 3227.69,-2349 3406.31,-2349 3406.31,-2327 3227.69,-2327"/>
<polygon fill="none" stroke="#3f4c5f" points="3227.69,-2327 3227.69,-2349 3406.31,-2349 3406.31,-2327 3227.69,-2327"/>
<polygon fill="#182b40" stroke="none" points="3228.69,-2328 3228.69,-2348 3283.81,-2348 3283.81,-2328 3228.69,-2328"/>
<text xml:space="preserve" text-anchor="start" x="3247" y="-2336.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3287.81" y="-2336" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3332.83" y="-2334.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List label templates</text>
<polygon fill="#272e3d" stroke="none" points="3227.69,-2305 3227.69,-2327 3406.31,-2327 3406.31,-2305 3227.69,-2305"/>
<polygon fill="none" stroke="#3f4c5f" points="3227.69,-2305 3227.69,-2327 3406.31,-2327 3406.31,-2305 3227.69,-2305"/>
<polygon fill="#143826" stroke="none" points="3228.69,-2306 3228.69,-2326 3281.29,-2326 3281.29,-2306 3228.69,-2306"/>
<text xml:space="preserve" text-anchor="start" x="3242.74" y="-2314.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="3285.29" y="-2314" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3325.27" y="-2312.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create label template</text>
<polygon fill="#2a3242" stroke="none" points="3227.69,-2283 3227.69,-2305 3406.31,-2305 3406.31,-2283 3227.69,-2283"/>
<polygon fill="none" stroke="#3f4c5f" points="3227.69,-2283 3227.69,-2305 3406.31,-2305 3406.31,-2283 3227.69,-2283"/>
<polygon fill="#182b40" stroke="none" points="3228.69,-2284 3228.69,-2304 3272.47,-2304 3272.47,-2284 3228.69,-2284"/>
<text xml:space="preserve" text-anchor="start" x="3241.33" y="-2292.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3276.47" y="-2292" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3315.49" y="-2290.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get label template by ID</text>
<polygon fill="#272e3d" stroke="none" points="3227.69,-2261 3227.69,-2283 3406.31,-2283 3406.31,-2261 3227.69,-2261"/>
<polygon fill="none" stroke="#3f4c5f" points="3227.69,-2261 3227.69,-2283 3406.31,-2283 3406.31,-2261 3227.69,-2261"/>
<polygon fill="#3b2c12" stroke="none" points="3228.69,-2262 3228.69,-2282 3275.14,-2282 3275.14,-2262 3228.69,-2262"/>
<text xml:space="preserve" text-anchor="start" x="3242.92" y="-2270.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<text xml:space="preserve" text-anchor="start" x="3279.14" y="-2270" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3323.48" y="-2268.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update label template</text>
<polygon fill="#2a3242" stroke="none" points="3227.69,-2239 3227.69,-2261 3406.31,-2261 3406.31,-2239 3227.69,-2239"/>
<polygon fill="none" stroke="#3f4c5f" points="3227.69,-2239 3227.69,-2261 3406.31,-2261 3406.31,-2239 3227.69,-2239"/>
<polygon fill="#301c44" stroke="none" points="3228.69,-2240 3228.69,-2260 3266.69,-2260 3266.69,-2240 3228.69,-2240"/>
<text xml:space="preserve" text-anchor="start" x="3232.19" y="-2248.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<text xml:space="preserve" text-anchor="start" x="3270.69" y="-2248" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3298.14" y="-2246.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Update label template (part…</text>
<polygon fill="#272e3d" stroke="none" points="3227.69,-2217 3227.69,-2239 3406.31,-2239 3406.31,-2217 3227.69,-2217"/>
<polygon fill="none" stroke="#3f4c5f" points="3227.69,-2217 3227.69,-2239 3406.31,-2239 3406.31,-2217 3227.69,-2217"/>
<polygon fill="#3a181e" stroke="none" points="3228.69,-2218 3228.69,-2238 3278.36,-2238 3278.36,-2218 3228.69,-2218"/>
<text xml:space="preserve" text-anchor="start" x="3235.78" y="-2226.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="3282.36" y="-2226" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="3326.15" y="-2224.8" 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="3793.61" y="-3160.58" 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="M3407.31,-2338C3487.35,-2338 3420.56,-2220.1 3488,-2177 3554.04,-2134.79 4138.45,-2211.27 4193,-2155 4342.39,-2000.87 3791.29,-1895.23 3942,-1742.4 3992.27,-1691.43 6462.5,-1750.36 6519,-1706.4 6739.46,-1534.87 6549.29,-1345.21 6681.97,-1099.4 6834.02,-817.73 7047.09,-860.74 7161,-561.6 7201.94,-454.08 6929.92,-572.4 6915.55,-469.64"/>
<polygon fill="#5cd6d6" stroke="#5cd6d6" stroke-width="1.4" points="6918.01,-469.74 6915.1,-462.91 6913.12,-470.06 6918.01,-469.74"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="6708.99" y="-1407.2" 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="3729.3,-2340 3729.3,-2371 3942.7,-2371 3942.7,-2340 3729.3,-2340"/>
<polygon fill="none" stroke="#3f4c5f" points="3729.3,-2340 3729.3,-2371 3942.7,-2371 3942.7,-2340 3729.3,-2340"/>
<text xml:space="preserve" text-anchor="start" x="3808.99" y="-2356.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">POSSync</text>
<text xml:space="preserve" text-anchor="start" x="3830" y="-2346.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/v1</text>
<polygon fill="#2a3242" stroke="none" points="3729.3,-2318 3729.3,-2340 3942.7,-2340 3942.7,-2318 3729.3,-2318"/>
<polygon fill="none" stroke="#3f4c5f" points="3729.3,-2318 3729.3,-2340 3942.7,-2340 3942.7,-2318 3729.3,-2318"/>
<polygon fill="#182b40" stroke="none" points="3730.3,-2319 3730.3,-2339 3768.3,-2339 3768.3,-2319 3730.3,-2319"/>
<text xml:space="preserve" text-anchor="start" x="3740.05" y="-2327.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3772.3" y="-2327" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/category</text>
<text xml:space="preserve" text-anchor="start" x="3824.77" y="-2325.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">JTL&#45;POS category synchroniz…</text>
<polygon fill="#272e3d" stroke="none" points="3729.3,-2296 3729.3,-2318 3942.7,-2318 3942.7,-2296 3729.3,-2296"/>
<polygon fill="none" stroke="#3f4c5f" points="3729.3,-2296 3729.3,-2318 3942.7,-2318 3942.7,-2296 3729.3,-2296"/>
<polygon fill="#182b40" stroke="none" points="3730.3,-2297 3730.3,-2317 3779.56,-2317 3779.56,-2297 3730.3,-2297"/>
<text xml:space="preserve" text-anchor="start" x="3745.68" y="-2305.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3783.56" y="-2305" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/client</text>
<text xml:space="preserve" text-anchor="start" x="3842.98" y="-2303.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">POS discovery and pairing</text>
<polygon fill="#2a3242" stroke="none" points="3729.3,-2274 3729.3,-2296 3942.7,-2296 3942.7,-2274 3729.3,-2274"/>
<polygon fill="none" stroke="#3f4c5f" points="3729.3,-2274 3729.3,-2296 3942.7,-2296 3942.7,-2274 3729.3,-2274"/>
<polygon fill="#182b40" stroke="none" points="3730.3,-2275 3730.3,-2295 3781.2,-2295 3781.2,-2275 3730.3,-2275"/>
<text xml:space="preserve" text-anchor="start" x="3746.5" y="-2283.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3785.2" y="-2283" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/init</text>
<text xml:space="preserve" text-anchor="start" x="3836.76" y="-2281.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">POS sync initialization cou…</text>
<polygon fill="#272e3d" stroke="none" points="3729.3,-2252 3729.3,-2274 3942.7,-2274 3942.7,-2252 3729.3,-2252"/>
<polygon fill="none" stroke="#3f4c5f" points="3729.3,-2252 3729.3,-2274 3942.7,-2274 3942.7,-2252 3729.3,-2252"/>
<polygon fill="#182b40" stroke="none" points="3730.3,-2253 3730.3,-2273 3774.97,-2273 3774.97,-2253 3730.3,-2253"/>
<text xml:space="preserve" text-anchor="start" x="3743.39" y="-2261.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3778.97" y="-2261" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/pimage</text>
<text xml:space="preserve" text-anchor="start" x="3838.09" y="-2259.8" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">POS product image delivery</text>
<polygon fill="#2a3242" stroke="none" points="3729.3,-2230 3729.3,-2252 3942.7,-2252 3942.7,-2230 3729.3,-2230"/>
<polygon fill="none" stroke="#3f4c5f" points="3729.3,-2230 3729.3,-2252 3942.7,-2252 3942.7,-2230 3729.3,-2230"/>
<polygon fill="#182b40" stroke="none" points="3730.3,-2231 3730.3,-2251 3770.38,-2251 3770.38,-2231 3730.3,-2231"/>
<text xml:space="preserve" text-anchor="start" x="3741.09" y="-2239.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3774.38" y="-2239" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/product</text>
<text xml:space="preserve" text-anchor="start" x="3826.54" y="-2237.8" 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="M3728.3,-2241C3611.16,-2241 3868.52,-2196.68 3984,-2177 4050.42,-2165.68 4177.01,-2194.33 4132,-2144.2 4120.95,-2131.89 4073.04,-2143.05 4057.97,-2136.2 3842.66,-2038.34 3878.64,-1880.77 3667,-1775.2 3618.09,-1750.8 3587.64,-1788.61 3546,-1753.2 3529.86,-1739.48 3527.87,-1728.97 3527.63,-1710.49"/>
<polygon fill="#8f95ff" stroke="#8f95ff" stroke-width="1.4" points="3530.08,-1710.51 3527.61,-1703.52 3525.18,-1710.53 3530.08,-1710.51"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4088.49" y="-1927" 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="M3728.3,-2329C3682.52,-2329 3711.78,-2268.29 3729.3,-2226 3747.59,-2181.88 3832.56,-2178.18 3799,-2144.2 3786.33,-2131.37 3167.35,-2141.1 3150,-2136.2 3076.97,-2115.59 3003.38,-2123.48 2997.75,-2054.06"/>
<polygon fill="#58d18a" stroke="#58d18a" stroke-width="1.4" points="3000.2,-2054.22 2997.48,-2047.32 2995.31,-2054.41 3000.2,-2054.22"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3838.96" y="-2146.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#58d18a"> &#160;category sync &#160;</text>
</g>
<!-- POSSync&#45;&gt;POSTerminal -->
<g id="edge56" class="edge">
<title>POSSync:w&#45;&gt;POSTerminal:n</title>
<g id="a_edge56"><a xlink:title="POSSync → POSTerminal (client bind)">
<path fill="none" stroke="#ff7fc2" stroke-width="1.4" d="M3720.41,-2300.5C3687.94,-2300.5 3677.6,-2363.54 3674.37,-2396.18"/>
<polygon fill="#ff7fc2" stroke="#ff7fc2" stroke-width="1.4" points="3671.98,-2395.61 3673.32,-2402.91 3676.82,-2396.36 3671.98,-2395.61"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="4044" y="-2486.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ff7fc2"> &#160;client bind &#160;</text>
</g>
<!-- ModelConversation -->
<g id="node34" class="node">
<title>ModelConversation</title>
<polygon fill="#33415c" stroke="none" points="1966.13,-1991.2 1966.13,-2022.2 2185.87,-2022.2 2185.87,-1991.2 1966.13,-1991.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1966.13,-1991.2 1966.13,-2022.2 2185.87,-2022.2 2185.87,-1991.2 1966.13,-1991.2"/>
<text xml:space="preserve" text-anchor="start" x="2020.33" y="-2007.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">ModelConversation</text>
<text xml:space="preserve" text-anchor="start" x="2036.98" y="-1998.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/modelconversation</text>
<polygon fill="#2a3242" stroke="none" points="1966.13,-1969.2 1966.13,-1991.2 2185.87,-1991.2 2185.87,-1969.2 1966.13,-1969.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1966.13,-1969.2 1966.13,-1991.2 2185.87,-1991.2 2185.87,-1969.2 1966.13,-1969.2"/>
<polygon fill="#182b40" stroke="none" points="1967.13,-1970.2 1967.13,-1990.2 2037.44,-1990.2 2037.44,-1970.2 1967.13,-1970.2"/>
<text xml:space="preserve" text-anchor="start" x="1993.03" y="-1978.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2041.44" y="-1978.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="2116.84" y="-1977" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List conversations</text>
<polygon fill="#272e3d" stroke="none" points="1966.13,-1947.2 1966.13,-1969.2 2185.87,-1969.2 2185.87,-1947.2 1966.13,-1947.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1966.13,-1947.2 1966.13,-1969.2 2185.87,-1969.2 2185.87,-1947.2 1966.13,-1947.2"/>
<polygon fill="#143826" stroke="none" points="1967.13,-1948.2 1967.13,-1968.2 2034.92,-1968.2 2034.92,-1948.2 1967.13,-1948.2"/>
<text xml:space="preserve" text-anchor="start" x="1988.77" y="-1956.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2038.92" y="-1956.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="2109.28" y="-1955" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Create conversation</text>
<polygon fill="#2a3242" stroke="none" points="1966.13,-1925.2 1966.13,-1947.2 2185.87,-1947.2 2185.87,-1925.2 1966.13,-1925.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1966.13,-1925.2 1966.13,-1947.2 2185.87,-1947.2 2185.87,-1925.2 1966.13,-1925.2"/>
<polygon fill="#182b40" stroke="none" points="1967.13,-1926.2 1967.13,-1946.2 2033.07,-1946.2 2033.07,-1926.2 1967.13,-1926.2"/>
<text xml:space="preserve" text-anchor="start" x="1990.85" y="-1934.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2037.07" y="-1934.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2120.4" y="-1933" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get conversation</text>
<polygon fill="#272e3d" stroke="none" points="1966.13,-1903.2 1966.13,-1925.2 2185.87,-1925.2 2185.87,-1903.2 1966.13,-1903.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1966.13,-1903.2 1966.13,-1925.2 2185.87,-1925.2 2185.87,-1903.2 1966.13,-1903.2"/>
<polygon fill="#182b40" stroke="none" points="1967.13,-1904.2 1967.13,-1924.2 2005.13,-1924.2 2005.13,-1904.2 1967.13,-1904.2"/>
<text xml:space="preserve" text-anchor="start" x="1976.88" y="-1912.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2009.13" y="-1912.2" 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="2082.16" y="-1911" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List conversation messages</text>
<polygon fill="#2a3242" stroke="none" points="1966.13,-1881.2 1966.13,-1903.2 2185.87,-1903.2 2185.87,-1881.2 1966.13,-1881.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1966.13,-1881.2 1966.13,-1903.2 2185.87,-1903.2 2185.87,-1881.2 1966.13,-1881.2"/>
<polygon fill="#182b40" stroke="none" points="1967.13,-1882.2 1967.13,-1902.2 2005.35,-1902.2 2005.35,-1882.2 1967.13,-1882.2"/>
<text xml:space="preserve" text-anchor="start" x="1976.99" y="-1890.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="2009.35" y="-1890.2" 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="2072.82" y="-1889" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Stream conversation events …</text>
<polygon fill="#272e3d" stroke="none" points="1966.13,-1859.2 1966.13,-1881.2 2185.87,-1881.2 2185.87,-1859.2 1966.13,-1859.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1966.13,-1859.2 1966.13,-1881.2 2185.87,-1881.2 2185.87,-1859.2 1966.13,-1859.2"/>
<polygon fill="#143826" stroke="none" points="1967.13,-1860.2 1967.13,-1880.2 2012.98,-1880.2 2012.98,-1860.2 1967.13,-1860.2"/>
<text xml:space="preserve" text-anchor="start" x="1977.8" y="-1868.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="2016.98" y="-1868.2" 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="2105.73" y="-1867" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Post a user message</text>
<polygon fill="#2a3242" stroke="none" points="1966.13,-1837.2 1966.13,-1859.2 2185.87,-1859.2 2185.87,-1837.2 1966.13,-1837.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1966.13,-1837.2 1966.13,-1859.2 2185.87,-1859.2 2185.87,-1837.2 1966.13,-1837.2"/>
<polygon fill="#3a181e" stroke="none" points="1967.13,-1838.2 1967.13,-1858.2 2031.99,-1858.2 2031.99,-1838.2 1967.13,-1838.2"/>
<text xml:space="preserve" text-anchor="start" x="1981.81" y="-1846.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="2035.99" y="-1846.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/{id}</text>
<text xml:space="preserve" text-anchor="start" x="2110.17" y="-1845" 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="M2186.87,-1980.2C2767.3,-1980.2 2899.59,-1844.28 3471,-1742.4 3564.22,-1725.78 3590.75,-1735.07 3681,-1706.4 4825.31,-1342.95 5040.98,-1071.4 6119,-542.8 6179.17,-513.3 6253.02,-539.39 6259.54,-480.66"/>
<polygon fill="#a98cff" stroke="#a98cff" stroke-width="1.4" points="6261.97,-481.03 6259.89,-473.92 6257.08,-480.78 6261.97,-481.03"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="5172.67" y="-1069.3" 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="1596,-2035.2 1596,-2066.2 1882,-2066.2 1882,-2035.2 1596,-2035.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-2035.2 1596,-2066.2 1882,-2066.2 1882,-2035.2 1596,-2035.2"/>
<text xml:space="preserve" text-anchor="start" x="1725.67" y="-2051.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">MCP</text>
<text xml:space="preserve" text-anchor="start" x="1729.25" y="-2042.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/mcp</text>
<polygon fill="#2a3242" stroke="none" points="1596,-2013.2 1596,-2035.2 1882,-2035.2 1882,-2013.2 1596,-2013.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-2013.2 1596,-2035.2 1882,-2035.2 1882,-2013.2 1596,-2013.2"/>
<polygon fill="#143826" stroke="none" points="1597,-2014.2 1597,-2034.2 1673.24,-2034.2 1673.24,-2014.2 1597,-2014.2"/>
<text xml:space="preserve" text-anchor="start" x="1622.87" y="-2022.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1677.24" y="-2022.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="1764.52" y="-2021" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Model Context Protocol (MCP…</text>
<polygon fill="#272e3d" stroke="none" points="1596,-1991.2 1596,-2013.2 1882,-2013.2 1882,-1991.2 1596,-1991.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-1991.2 1596,-2013.2 1882,-2013.2 1882,-1991.2 1596,-1991.2"/>
<polygon fill="#182b40" stroke="none" points="1597,-1992.2 1597,-2012.2 1654.32,-2012.2 1654.32,-1992.2 1597,-1992.2"/>
<text xml:space="preserve" text-anchor="start" x="1616.41" y="-2000.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1658.32" y="-2000.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/authorizations</text>
<text xml:space="preserve" text-anchor="start" x="1776.07" y="-1999" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List active MCP client auth…</text>
<polygon fill="#2a3242" stroke="none" points="1596,-1969.2 1596,-1991.2 1882,-1991.2 1882,-1969.2 1596,-1969.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-1969.2 1596,-1991.2 1882,-1991.2 1882,-1969.2 1596,-1969.2"/>
<polygon fill="#182b40" stroke="none" points="1597,-1970.2 1597,-1990.2 1658.43,-1990.2 1658.43,-1970.2 1597,-1970.2"/>
<text xml:space="preserve" text-anchor="start" x="1618.46" y="-1978.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1662.43" y="-1978.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/authorize</text>
<text xml:space="preserve" text-anchor="start" x="1764.51" y="-1977" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Get MCP authorization promp…</text>
<polygon fill="#272e3d" stroke="none" points="1596,-1947.2 1596,-1969.2 1882,-1969.2 1882,-1947.2 1596,-1947.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-1947.2 1596,-1969.2 1882,-1969.2 1882,-1947.2 1596,-1947.2"/>
<polygon fill="#182b40" stroke="none" points="1597,-1948.2 1597,-1968.2 1668.46,-1968.2 1668.46,-1948.2 1597,-1948.2"/>
<text xml:space="preserve" text-anchor="start" x="1623.48" y="-1956.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1672.46" y="-1956.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/clients</text>
<text xml:space="preserve" text-anchor="start" x="1781.86" y="-1955" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">List registered MCP clients</text>
<polygon fill="#2a3242" stroke="none" points="1596,-1925.2 1596,-1947.2 1882,-1947.2 1882,-1925.2 1596,-1925.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-1925.2 1596,-1947.2 1882,-1947.2 1882,-1925.2 1596,-1925.2"/>
<polygon fill="#182b40" stroke="none" points="1597,-1926.2 1597,-1946.2 1649.9,-1946.2 1649.9,-1926.2 1597,-1926.2"/>
<text xml:space="preserve" text-anchor="start" x="1614.2" y="-1934.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="1653.9" y="-1934.2" 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="1768.94" y="-1933" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">OAuth 2.1 Authorization End…</text>
<polygon fill="#272e3d" stroke="none" points="1596,-1903.2 1596,-1925.2 1882,-1925.2 1882,-1903.2 1596,-1903.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-1903.2 1596,-1925.2 1882,-1925.2 1882,-1903.2 1596,-1903.2"/>
<polygon fill="#143826" stroke="none" points="1597,-1904.2 1597,-1924.2 1660.06,-1924.2 1660.06,-1904.2 1597,-1904.2"/>
<text xml:space="preserve" text-anchor="start" x="1616.27" y="-1912.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1664.06" y="-1912.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/authorize</text>
<text xml:space="preserve" text-anchor="start" x="1769.4" y="-1911" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Grant or deny MCP client au…</text>
<polygon fill="#2a3242" stroke="none" points="1596,-1881.2 1596,-1903.2 1882,-1903.2 1882,-1881.2 1596,-1881.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-1881.2 1596,-1903.2 1882,-1903.2 1882,-1881.2 1596,-1881.2"/>
<polygon fill="#143826" stroke="none" points="1597,-1882.2 1597,-1902.2 1649.2,-1902.2 1649.2,-1882.2 1597,-1882.2"/>
<text xml:space="preserve" text-anchor="start" x="1610.85" y="-1890.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1653.2" y="-1890.2" 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="1770.73" y="-1889" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">OAuth 2.0 Token Introspecti…</text>
<polygon fill="#272e3d" stroke="none" points="1596,-1859.2 1596,-1881.2 1882,-1881.2 1882,-1859.2 1596,-1859.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-1859.2 1596,-1881.2 1882,-1881.2 1882,-1859.2 1596,-1859.2"/>
<polygon fill="#143826" stroke="none" points="1597,-1860.2 1597,-1880.2 1653.39,-1880.2 1653.39,-1860.2 1597,-1860.2"/>
<text xml:space="preserve" text-anchor="start" x="1612.94" y="-1868.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1657.39" y="-1868.2" 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="1771.63" y="-1867" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Dynamic Client Registration…</text>
<polygon fill="#2a3242" stroke="none" points="1596,-1837.2 1596,-1859.2 1882,-1859.2 1882,-1837.2 1596,-1837.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-1837.2 1596,-1859.2 1882,-1859.2 1882,-1837.2 1596,-1837.2"/>
<polygon fill="#143826" stroke="none" points="1597,-1838.2 1597,-1858.2 1654.65,-1858.2 1654.65,-1838.2 1597,-1838.2"/>
<text xml:space="preserve" text-anchor="start" x="1613.57" y="-1846.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<text xml:space="preserve" text-anchor="start" x="1658.65" y="-1846.2" 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="1765.39" y="-1845" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">OAuth 2.1 Token Endpoint (R…</text>
<polygon fill="#272e3d" stroke="none" points="1596,-1815.2 1596,-1837.2 1882,-1837.2 1882,-1815.2 1596,-1815.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-1815.2 1596,-1837.2 1882,-1837.2 1882,-1815.2 1596,-1815.2"/>
<polygon fill="#3a181e" stroke="none" points="1597,-1816.2 1597,-1836.2 1638.5,-1836.2 1638.5,-1816.2 1597,-1816.2"/>
<text xml:space="preserve" text-anchor="start" x="1600" y="-1824.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="1642.5" y="-1824.2" 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="1767.18" y="-1823" font-family="Helvetica,sans-Serif" font-size="8.00" fill="#8b95a7">Revoke MCP client authoriza…</text>
<polygon fill="#2a3242" stroke="none" points="1596,-1793.2 1596,-1815.2 1882,-1815.2 1882,-1793.2 1596,-1793.2"/>
<polygon fill="none" stroke="#3f4c5f" points="1596,-1793.2 1596,-1815.2 1882,-1815.2 1882,-1793.2 1596,-1793.2"/>
<polygon fill="#3a181e" stroke="none" points="1597,-1794.2 1597,-1814.2 1653.39,-1814.2 1653.39,-1794.2 1597,-1794.2"/>
<text xml:space="preserve" text-anchor="start" x="1607.44" y="-1802.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<text xml:space="preserve" text-anchor="start" x="1657.39" y="-1802.2" 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="1775.18" y="-1801" 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="M1595,-2024.2C1542.77,-2024.2 1559.79,-1826.83 1596,-1789.2 1646.58,-1736.63 1851.07,-1777.27 1924,-1775.2 1945.7,-1774.58 3471.76,-1768.66 3487,-1753.2 3490.37,-1749.78 3487.15,-1747.2 3487,-1742.4 3486.53,-1727.57 3485.11,-1721.83 3484.59,-1710.4"/>
<polygon fill="#ff6f6f" stroke="#ff6f6f" stroke-width="1.4" points="3487.04,-1710.47 3484.44,-1703.52 3482.14,-1710.57 3487.04,-1710.47"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3516.29" y="-1745.1" 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="M1595,-2024.2C1542.77,-2024.2 1559.79,-1826.83 1596,-1789.2 1646.58,-1736.63 1851.07,-1777.22 1924,-1775.2 1948.26,-1774.53 3653.95,-1770.47 3671,-1753.2 3674.37,-1749.78 3674.37,-1745.82 3671,-1742.4 3623.23,-1693.92 1285.47,-1728.22 1221,-1706.4 1111.49,-1669.33 1011.81,-1666.17 1006.81,-1556.21"/>
<polygon fill="#4ecb8f" stroke="#4ecb8f" stroke-width="1.4" points="1009.27,-1556.46 1006.67,-1549.52 1004.37,-1556.57 1009.27,-1556.46"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3699.79" y="-1745.1" 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="3614.13,-1925.2 3614.13,-1956.2 3777.87,-1956.2 3777.87,-1925.2 3614.13,-1925.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3614.13,-1925.2 3614.13,-1956.2 3777.87,-1956.2 3777.87,-1925.2 3614.13,-1925.2"/>
<text xml:space="preserve" text-anchor="start" x="3676.32" y="-1941.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Events</text>
<text xml:space="preserve" text-anchor="start" x="3681.49" y="-1932.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/events</text>
<polygon fill="#2a3242" stroke="none" points="3614.13,-1903.2 3614.13,-1925.2 3777.87,-1925.2 3777.87,-1903.2 3614.13,-1903.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3614.13,-1903.2 3614.13,-1925.2 3777.87,-1925.2 3777.87,-1903.2 3614.13,-1903.2"/>
<polygon fill="#182b40" stroke="none" points="3615.13,-1904.2 3615.13,-1924.2 3653.13,-1924.2 3653.13,-1904.2 3615.13,-1904.2"/>
<text xml:space="preserve" text-anchor="start" x="3624.88" y="-1912.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3657.13" y="-1912.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3667.91" y="-1911" 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="M3613.13,-1914.2C3530.66,-1914.2 3586.87,-1812.24 3543,-1742.4 3531.78,-1724.54 3512.52,-1725.22 3507.32,-1710.19"/>
<polygon fill="#e0b25a" stroke="#e0b25a" stroke-width="1.4" points="3509.78,-1710.05 3506.31,-1703.5 3504.93,-1710.78 3509.78,-1710.05"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3574.12" y="-1745.1" 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="M3613.13,-1914.2C3503.93,-1914.2 3738.86,-2077.42 3662,-2155 3616.15,-2201.28 1363.49,-2131.37 1317,-2177 1305.1,-2188.68 1324.69,-2315.31 1312.8,-2327 1300.66,-2338.94 1244.36,-2345.81 1227.07,-2335.54"/>
<polygon fill="#5aa7e6" stroke="#5aa7e6" stroke-width="1.4" points="1229.12,-2334.2 1223.18,-2329.76 1225.05,-2336.94 1229.12,-2334.2"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3693.12" y="-2146.9" 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="M3613.13,-1914.2C2990.1,-1914.2 2846.51,-2066.14 2225,-2109.68 2076.92,-2120.06 1691.51,-2172.48 1557,-2109.68 1497.05,-2081.7 1460.33,-2061.37 1457.15,-1999.25"/>
<polygon fill="#ff7aa8" stroke="#ff7aa8" stroke-width="1.4" points="1459.6,-1999.26 1456.98,-1992.32 1454.7,-1999.38 1459.6,-1999.26"/>
</a>
</g>
<text xml:space="preserve" text-anchor="middle" x="3500" y="-2146.9" 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="3861.92,-1925.2 3861.92,-1956.2 4002.08,-1956.2 4002.08,-1925.2 3861.92,-1925.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3861.92,-1925.2 3861.92,-1956.2 4002.08,-1956.2 4002.08,-1925.2 3861.92,-1925.2"/>
<text xml:space="preserve" text-anchor="start" x="3913.66" y="-1941.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="12.00" fill="#e2e8f0">Health</text>
<text xml:space="preserve" text-anchor="start" x="3918.49" y="-1932.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#8b95a7">/health</text>
<polygon fill="#2a3242" stroke="none" points="3861.92,-1903.2 3861.92,-1925.2 4002.08,-1925.2 4002.08,-1903.2 3861.92,-1903.2"/>
<polygon fill="none" stroke="#3f4c5f" points="3861.92,-1903.2 3861.92,-1925.2 4002.08,-1925.2 4002.08,-1903.2 3861.92,-1903.2"/>
<polygon fill="#182b40" stroke="none" points="3862.92,-1904.2 3862.92,-1924.2 3900.92,-1924.2 3900.92,-1904.2 3862.92,-1904.2"/>
<text xml:space="preserve" text-anchor="start" x="3872.67" y="-1912.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<text xml:space="preserve" text-anchor="start" x="3904.92" y="-1912.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00" fill="#d8dee9">/</text>
<text xml:space="preserve" text-anchor="start" x="3915.7" y="-1911" 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="4086.46,-1843.3 4086.46,-2016.1 4265.54,-2016.1 4265.54,-1843.3 4086.46,-1843.3"/>
<polygon fill="#33415c" stroke="none" points="4086.46,-1992.9 4086.46,-2016.1 4265.54,-2016.1 4265.54,-1992.9 4086.46,-1992.9"/>
<polygon fill="none" stroke="#3f4c5f" points="4086.46,-1992.9 4086.46,-2016.1 4265.54,-2016.1 4265.54,-1992.9 4086.46,-1992.9"/>
<text xml:space="preserve" text-anchor="start" x="4128.02" y="-2002.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="11.00" fill="#e2e8f0">API Graph Legend</text>
<polygon fill="#182b40" stroke="none" points="4086.46,-1972.1 4086.46,-1992.9 4127.97,-1992.9 4127.97,-1972.1 4086.46,-1972.1"/>
<polygon fill="none" stroke="#3f4c5f" points="4086.46,-1972.1 4086.46,-1992.9 4127.97,-1992.9 4127.97,-1972.1 4086.46,-1972.1"/>
<text xml:space="preserve" text-anchor="start" x="4097.96" y="-1980.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#38bdf8">GET</text>
<polygon fill="none" stroke="#3f4c5f" points="4127.97,-1972.1 4127.97,-1992.9 4265.54,-1992.9 4265.54,-1972.1 4127.97,-1972.1"/>
<text xml:space="preserve" text-anchor="start" x="4132.97" y="-1978.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Safe retrieval / query</text>
<polygon fill="#143826" stroke="none" points="4086.46,-1951.3 4086.46,-1972.1 4127.97,-1972.1 4127.97,-1951.3 4086.46,-1951.3"/>
<polygon fill="none" stroke="#3f4c5f" points="4086.46,-1951.3 4086.46,-1972.1 4127.97,-1972.1 4127.97,-1951.3 4086.46,-1951.3"/>
<text xml:space="preserve" text-anchor="start" x="4094.96" y="-1960" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#4ade80">POST</text>
<polygon fill="none" stroke="#3f4c5f" points="4127.97,-1951.3 4127.97,-1972.1 4265.54,-1972.1 4265.54,-1951.3 4127.97,-1951.3"/>
<text xml:space="preserve" text-anchor="start" x="4132.97" y="-1958.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Create resource / action</text>
<polygon fill="#3b2c12" stroke="none" points="4086.46,-1930.5 4086.46,-1951.3 4127.97,-1951.3 4127.97,-1930.5 4086.46,-1930.5"/>
<polygon fill="none" stroke="#3f4c5f" points="4086.46,-1930.5 4086.46,-1951.3 4127.97,-1951.3 4127.97,-1930.5 4086.46,-1930.5"/>
<text xml:space="preserve" text-anchor="start" x="4098.21" y="-1939.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#fbbf24">PUT</text>
<polygon fill="none" stroke="#3f4c5f" points="4127.97,-1930.5 4127.97,-1951.3 4265.54,-1951.3 4265.54,-1930.5 4127.97,-1930.5"/>
<text xml:space="preserve" text-anchor="start" x="4132.97" y="-1937.3" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Full replace / collection update</text>
<polygon fill="#301c44" stroke="none" points="4086.46,-1909.7 4086.46,-1930.5 4127.97,-1930.5 4127.97,-1909.7 4086.46,-1909.7"/>
<polygon fill="none" stroke="#3f4c5f" points="4086.46,-1909.7 4086.46,-1930.5 4127.97,-1930.5 4127.97,-1909.7 4086.46,-1909.7"/>
<text xml:space="preserve" text-anchor="start" x="4091.71" y="-1918.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#c084fc">PATCH</text>
<polygon fill="none" stroke="#3f4c5f" points="4127.97,-1909.7 4127.97,-1930.5 4265.54,-1930.5 4265.54,-1909.7 4127.97,-1909.7"/>
<text xml:space="preserve" text-anchor="start" x="4132.97" y="-1916.5" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Partial entity update</text>
<polygon fill="#3a181e" stroke="none" points="4086.46,-1888.9 4086.46,-1909.7 4127.97,-1909.7 4127.97,-1888.9 4086.46,-1888.9"/>
<polygon fill="none" stroke="#3f4c5f" points="4086.46,-1888.9 4086.46,-1909.7 4127.97,-1909.7 4127.97,-1888.9 4086.46,-1888.9"/>
<text xml:space="preserve" text-anchor="start" x="4089.46" y="-1897.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="9.00" fill="#f87171">DELETE</text>
<polygon fill="none" stroke="#3f4c5f" points="4127.97,-1888.9 4127.97,-1909.7 4265.54,-1909.7 4265.54,-1888.9 4127.97,-1888.9"/>
<text xml:space="preserve" text-anchor="start" x="4132.97" y="-1895.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Remove resource</text>
<polygon fill="none" stroke="#3f4c5f" points="4086.46,-1866.1 4086.46,-1888.9 4127.97,-1888.9 4127.97,-1866.1 4086.46,-1866.1"/>
<text xml:space="preserve" text-anchor="start" x="4097.1" y="-1874.3" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="14.00" fill="#e2e8f0">in#</text>
<polygon fill="none" stroke="#3f4c5f" points="4127.97,-1866.1 4127.97,-1888.9 4265.54,-1888.9 4265.54,-1866.1 4127.97,-1866.1"/>
<text xml:space="preserve" text-anchor="start" x="4132.97" y="-1873.9" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Inbound arrival port on resource</text>
<polygon fill="none" stroke="#3f4c5f" points="4086.46,-1843.3 4086.46,-1866.1 4127.97,-1866.1 4127.97,-1843.3 4086.46,-1843.3"/>
<text xml:space="preserve" text-anchor="start" x="4089.71" y="-1849.1" font-family="Helvetica,sans-Serif" font-size="14.00" fill="#5aa7ff">▪—▶</text>
<polygon fill="none" stroke="#3f4c5f" points="4127.97,-1843.3 4127.97,-1866.1 4265.54,-1866.1 4265.54,-1843.3 4127.97,-1843.3"/>
<text xml:space="preserve" text-anchor="start" x="4132.97" y="-1851.1" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#d8dee9">Relational reference / dataflow</text>
</g>
</g>
</svg>