Diagrams/DB1 - First usable DB schema

This commit is contained in:
Jan Beníček 2025-07-10 09:54:22 +02:00
parent 9cb9ad066a
commit 1917daec9f
2 changed files with 237 additions and 0 deletions

10
Diagrams/.$DB1.drawio.bkp Normal file
View file

@ -0,0 +1,10 @@
<mxfile host="Electron" modified="2025-07-08T06:28:10.985Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.5.1 Chrome/124.0.6367.207 Electron/30.0.6 Safari/537.36" etag="CSSXDarCTskUwv9H6kYU" version="24.5.1" type="device">
<diagram name="Stránka-1" id="vw37qTJwixAef_W5qqcn">
<mxGraphModel dx="1434" dy="836" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="1654" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
</root>
</mxGraphModel>
</diagram>
</mxfile>

227
Diagrams/DB1.drawio Normal file
View file

@ -0,0 +1,227 @@
<mxfile host="Electron" modified="2025-07-10T07:54:11.482Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.5.1 Chrome/124.0.6367.207 Electron/30.0.6 Safari/537.36" etag="ey90cTSkTYKv36LjB7Uf" version="24.5.1" type="device">
<diagram name="Stránka-1" id="vw37qTJwixAef_W5qqcn">
<mxGraphModel dx="2416" dy="2381" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="1654" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="EljH5eTI51qKpxheGZWM-1" value="Users" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="420" y="100" width="140" height="300" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-2" value="id: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-1" vertex="1">
<mxGeometry y="30" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-7" value="username: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-1" vertex="1">
<mxGeometry y="60" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-3" value="name: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-1" vertex="1">
<mxGeometry y="90" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-4" value="surname: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-1" vertex="1">
<mxGeometry y="120" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-5" value="email: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-1" vertex="1">
<mxGeometry y="150" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-6" value="passwd: string/hash&lt;font style=&quot;font-size: 4px;&quot;&gt;&lt;br&gt;&lt;font style=&quot;font-size: 4px;&quot;&gt;(null for disabled)&lt;/font&gt;&lt;/font&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-1" vertex="1">
<mxGeometry y="180" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-9" value="created: timestamp" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-1" vertex="1">
<mxGeometry y="210" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-38" value="qota: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="EljH5eTI51qKpxheGZWM-1">
<mxGeometry y="240" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-62" value="admin: bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="EljH5eTI51qKpxheGZWM-1">
<mxGeometry y="270" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-10" value="FileFolders" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="80" y="30" width="140" height="300" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#60a917;strokeColor=#2D7600;" parent="EljH5eTI51qKpxheGZWM-10" source="EljH5eTI51qKpxheGZWM-11" target="EljH5eTI51qKpxheGZWM-14" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="-20" y="45" />
<mxPoint x="-20" y="135" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-11" value="id: UUID" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-10" vertex="1">
<mxGeometry y="30" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-12" value="name: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-10" vertex="1">
<mxGeometry y="60" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-13" value="owner: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-10" vertex="1">
<mxGeometry y="90" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-14" value="parrent: UUID" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-10" vertex="1">
<mxGeometry y="120" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-15" value="folder: bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-10" vertex="1">
<mxGeometry y="150" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-16" value="created: timestamp" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-10" vertex="1">
<mxGeometry y="180" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-17" value="changed: timestamp" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="EljH5eTI51qKpxheGZWM-10" vertex="1">
<mxGeometry y="210" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-19" value="size: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="EljH5eTI51qKpxheGZWM-10">
<mxGeometry y="240" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-55" value="GroupFolder: bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="EljH5eTI51qKpxheGZWM-10">
<mxGeometry y="270" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="EljH5eTI51qKpxheGZWM-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="EljH5eTI51qKpxheGZWM-2" target="EljH5eTI51qKpxheGZWM-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-1" value="Sharing" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="80" y="-460" width="140" height="360" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-2" value="id: UUID" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="30" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-3" value="name: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="60" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-4" value="expire: timestamp" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="90" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-5" value="created: timestamp" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="120" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-6" value="write: bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="150" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-7" value="edit: bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="180" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-8" value="remove: bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="210" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-9" value="type: byte" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="240" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-11" value="password: string/hash" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="270" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-10" value="rid: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="300" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-12" value="shared: UUID" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-1">
<mxGeometry y="330" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="EljH5eTI51qKpxheGZWM-2" target="1IRiv2xNejNAtmqQNkPV-10">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="320" y="145" />
<mxPoint x="320" y="-145" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#60a917;strokeColor=#2D7600;" edge="1" parent="1" source="EljH5eTI51qKpxheGZWM-11" target="1IRiv2xNejNAtmqQNkPV-12">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="60" y="85" />
<mxPoint x="60" y="-115" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="1IRiv2xNejNAtmqQNkPV-20" target="1IRiv2xNejNAtmqQNkPV-9">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-20" value="Sharing Types &lt;br&gt;&lt;font style=&quot;font-size: 7px;&quot;&gt;(hardcodded, no table)&lt;/font&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="-200" y="-180" width="140" height="150" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-21" value="0 - Group" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-20">
<mxGeometry y="30" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-22" value="1 - User" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-20">
<mxGeometry y="60" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-23" value="2 - URL" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-20">
<mxGeometry y="90" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-33" value="3 - GroupFolder" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-20">
<mxGeometry y="120" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-29" value="Groups" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="770" y="-90" width="140" height="150" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-30" value="id: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-29">
<mxGeometry y="30" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-31" value="name: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-29">
<mxGeometry y="60" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-32" value="description: string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-29">
<mxGeometry y="90" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-34" value="quota: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-29">
<mxGeometry y="120" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-39" value="UserGroup" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="420" y="-120" width="140" height="150" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-40" value="id: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-39">
<mxGeometry y="30" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-41" value="gid: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-39">
<mxGeometry y="60" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-42" value="uid: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-39">
<mxGeometry y="90" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-45" value="role: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-39">
<mxGeometry y="120" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="EljH5eTI51qKpxheGZWM-2" target="1IRiv2xNejNAtmqQNkPV-42">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="320" y="145" />
<mxPoint x="320" y="-15" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#1ba1e2;strokeColor=#006EAF;" edge="1" parent="1" source="1IRiv2xNejNAtmqQNkPV-30" target="1IRiv2xNejNAtmqQNkPV-41">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="1IRiv2xNejNAtmqQNkPV-46" target="1IRiv2xNejNAtmqQNkPV-45">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-46" value="Group Roles&lt;font style=&quot;font-size: 6px;&quot;&gt;&lt;br&gt;(hardcoded, no table)&lt;/font&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="670" y="80" width="140" height="120" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-47" value="0 - ReadOnly" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-46">
<mxGeometry y="30" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-48" value="1 - Write" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-46">
<mxGeometry y="60" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-49" value="2 - Remove" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="1IRiv2xNejNAtmqQNkPV-46">
<mxGeometry y="90" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#1ba1e2;strokeColor=#006EAF;" edge="1" parent="1" source="1IRiv2xNejNAtmqQNkPV-30" target="EljH5eTI51qKpxheGZWM-13">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="680" y="-45" />
<mxPoint x="680" y="50" />
<mxPoint x="280" y="50" />
<mxPoint x="280" y="130" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="1IRiv2xNejNAtmqQNkPV-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#1ba1e2;strokeColor=#006EAF;" edge="1" parent="1" source="1IRiv2xNejNAtmqQNkPV-30" target="1IRiv2xNejNAtmqQNkPV-10">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="680" y="-45" />
<mxPoint x="680" y="50" />
<mxPoint x="280" y="50" />
<mxPoint x="280" y="-140" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>