easyappointments/doc/thesis/diagrams/ea-domain-model.io

1 line
8.8 KiB
Io

<mxGraphModel dx="800" dy="800" grid="1" guides="1" tooltips="1" connect="1" fold="1" page="1" pageScale="1" pageWidth="826" pageHeight="1169" style="default-style2"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="28" value="&lt;p style=&quot;margin: 0px; margin-top: 4px; text-align: center;&quot;&gt;&lt;strong&gt;User&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ first_name: string&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ last_name: string&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ email: string&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ phone_number: string&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ settings: array&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ role: UserRole&lt;/p&gt;&lt;hr /&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ login(): bool&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ logout(): bool&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1" parent="1" vertex="1"><mxGeometry x="30" y="145" width="160" height="175" as="geometry"/></mxCell><mxCell id="29" value="&lt;p style=&quot;margin: 0px; margin-top: 4px; text-align: center;&quot;&gt;&lt;strong&gt;Administrator&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1" parent="1" vertex="1"><mxGeometry x="275" y="25" width="180" height="70" as="geometry"/></mxCell><mxCell id="30" value="&lt;p style=&quot;margin: 0px; margin-top: 4px; text-align: center;&quot;&gt;&lt;strong&gt;Secretary&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ providers: array&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1" parent="1" vertex="1"><mxGeometry x="275" y="127.5" width="180" height="70" as="geometry"/></mxCell><mxCell id="31" value="&lt;p style=&quot;margin: 0px; margin-top: 4px; text-align: center;&quot;&gt;&lt;strong&gt;Provider&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ services: array&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1" parent="1" vertex="1"><mxGeometry x="275" y="315" width="180" height="70" as="geometry"/></mxCell><mxCell id="32" value="&lt;p style=&quot;margin: 0px; margin-top: 4px; text-align: center;&quot;&gt;&lt;strong&gt;Customer&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ appointments: array&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1" parent="1" vertex="1"><mxGeometry x="275" y="417.5" width="180" height="70" as="geometry"/></mxCell><mxCell id="33" value="Extends" style="endArrow=block;endSize=16;endFill=0;exitX=0;exitY=0.5;entryX=1;entryY=0.25" parent="1" source="29" target="28" edge="1"><mxGeometry y="-625" as="geometry"><mxPoint y="-625" as="sourcePoint"/><mxPoint x="160" y="-625" as="targetPoint"/></mxGeometry></mxCell><mxCell id="34" value="Extends" style="endArrow=block;endSize=16;endFill=0;exitX=0;exitY=0.5;entryX=1;entryY=0.5" parent="1" source="30" target="28" edge="1"><mxGeometry y="-625" as="geometry"><mxPoint y="-625" as="sourcePoint"/><mxPoint x="160" y="-625" as="targetPoint"/></mxGeometry></mxCell><mxCell id="35" value="Extends" style="endArrow=block;endSize=16;endFill=0;exitX=0;exitY=0.5;entryX=1;entryY=0.5" parent="1" source="31" target="28" edge="1"><mxGeometry y="-625" as="geometry"><mxPoint y="-625" as="sourcePoint"/><mxPoint x="160" y="-625" as="targetPoint"/></mxGeometry></mxCell><mxCell id="36" value="Extends" style="endArrow=block;endSize=16;endFill=0;exitX=0;exitY=0.5;entryX=1;entryY=0.75" parent="1" source="32" target="28" edge="1"><mxGeometry y="-625" as="geometry"><mxPoint y="-625" as="sourcePoint"/><mxPoint x="160" y="-625" as="targetPoint"/></mxGeometry></mxCell><mxCell id="37" value="&lt;p style=&quot;margin: 0px; margin-top: 4px; text-align: center;&quot;&gt;&lt;strong&gt;Service&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ category: ServiceCategory&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1" parent="1" vertex="1"><mxGeometry x="545" y="210" width="180" height="70" as="geometry"/></mxCell><mxCell id="38" value="&lt;p style=&quot;margin: 0px; margin-top: 4px; text-align: center;&quot;&gt;&lt;strong&gt;UserRole&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ appointments: int&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ customers: int&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ providers: int&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ services: int&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ system_settings: int&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ user_settings:int&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1" parent="1" vertex="1"><mxGeometry x="30" y="385" width="160" height="125" as="geometry"/></mxCell><mxCell id="41" value="1" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0.5;exitY=1" parent="1" source="28" target="38" edge="1"><mxGeometry x="-0.29411764705882354" y="10" relative="1" as="geometry"><mxPoint as="sourcePoint"/><mxPoint x="160" as="targetPoint"/><mxPoint as="offset"/></mxGeometry></mxCell><mxCell id="42" value="&lt;p style=&quot;margin: 0px; margin-top: 4px; text-align: center;&quot;&gt;&lt;strong&gt;Appointment&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ customer: Customer&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ provider: Provider&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ service: Service&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1" parent="1" vertex="1"><mxGeometry x="545" y="405" width="180" height="95" as="geometry"/></mxCell><mxCell id="43" value="&lt;p style=&quot;margin: 0px; margin-top: 4px; text-align: center;&quot;&gt;&lt;strong&gt;ServiceCategory&lt;/strong&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ name: string&lt;/p&gt;&lt;p style=&quot;margin: 0px; margin-left: 4px;&quot;&gt;+ description: string&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1" parent="1" vertex="1"><mxGeometry x="545" y="25" width="180" height="70" as="geometry"/></mxCell><mxCell id="48" value="" style="endArrow=block;startArrow=block;endFill=1;startFill=1;exitX=0.5;exitY=1" parent="1" source="30" target="31" edge="1"><mxGeometry x="-45" as="geometry"><mxPoint x="-45" as="sourcePoint"/><mxPoint x="115" as="targetPoint"/></mxGeometry></mxCell><mxCell id="49" value="1" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0;exitY=0.25;entryX=1;entryY=0.5" parent="1" source="42" target="31" edge="1"><mxGeometry x="-0.6444444444444445" y="-8.75" relative="1" as="geometry"><mxPoint x="-45" as="sourcePoint"/><mxPoint x="115" as="targetPoint"/><mxPoint as="offset"/></mxGeometry></mxCell><mxCell id="50" value="1" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0;exitY=0.5;entryX=1;entryY=0.5" parent="1" source="42" target="32" edge="1"><mxGeometry x="-0.5555555555555556" y="27.5" relative="1" as="geometry"><mxPoint x="-45" as="sourcePoint"/><mxPoint x="115" as="targetPoint"/><mxPoint as="offset"/></mxGeometry></mxCell><mxCell id="51" value="1" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0.5;exitY=0;entryX=0.5;entryY=1" parent="1" source="42" target="37" edge="1"><mxGeometry x="-0.8181818181818182" y="20" relative="1" as="geometry"><mxPoint x="-45" as="sourcePoint"/><mxPoint x="115" as="targetPoint"/><mxPoint as="offset"/></mxGeometry></mxCell><mxCell id="52" value="1" style="endArrow=open;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0.5;exitY=0;entryX=0.5;entryY=1" parent="1" source="37" target="43" edge="1"><mxGeometry x="-0.7575757575757576" y="20" relative="1" as="geometry"><mxPoint x="-45" as="sourcePoint"/><mxPoint x="115" as="targetPoint"/><mxPoint as="offset"/></mxGeometry></mxCell></root></mxGraphModel>