meldestelle/docs/01_Architecture/c4/domain_model.drawio
Stefan Mogeritsch 92f22faf2f docs: enhance glossary formatting for consistency and readability
- Standardized table layouts by aligning column headers and content across all alphabetical sections.
- Improved text organization and adjusted spacing for better readability.
- Retained all existing references and definitions without modifications to their meaning.
2026-04-07 19:28:38 +02:00

99 lines
8.7 KiB
Plaintext

<mxfile host="Electron" modified="2026-04-07T12:00:00.000Z" agent="Lead Architect" version="21.0.0" type="device">
<diagram id="domain_model" name="Core Domain Model">
<mxGraphModel dx="1200" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<!-- Entities -->
<mxCell id="ent_veranstaltung" value="&lt;b&gt;Veranstaltung&lt;/b&gt;&lt;br&gt;&lt;hr&gt;&lt;i&gt;Event Management Context&lt;/i&gt;&lt;br&gt;- Name&lt;br&gt;- Ort&lt;br&gt;- Zeitraum (z.B. Do-So)&lt;br&gt;- ZNS.zip (Stammdaten)&lt;br&gt;&lt;b&gt;[Tenant Boundary]&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="120" y="80" width="200" height="120" as="geometry" />
</mxCell>
<!-- NEU: Austragungsplatz und Artikel an Veranstaltung -->
<mxCell id="ent_austragungsplatz" value="&lt;b&gt;Austragungsplatz&lt;/b&gt;&lt;br&gt;&lt;hr&gt;&lt;i&gt;Event Management Context&lt;/i&gt;&lt;br&gt;- Name (z.B. Waldarena)&lt;br&gt;- Sparte (optional)&lt;br&gt;- Maße" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
<mxGeometry x="360" y="80" width="160" height="100" as="geometry" />
</mxCell>
<mxCell id="ent_artikel" value="&lt;b&gt;TurnierArtikel&lt;/b&gt;&lt;br&gt;&lt;hr&gt;&lt;i&gt;Billing Context&lt;/i&gt;&lt;br&gt;- Name (Heu, Ansage)&lt;br&gt;- Preis&lt;br&gt;- Automatisch (Nenngeld) vs. Manuell" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
<mxGeometry x="560" y="80" width="200" height="100" as="geometry" />
</mxCell>
<mxCell id="ent_kassa" value="&lt;b&gt;TeilnehmerKonto&lt;/b&gt;&lt;br&gt;&lt;hr&gt;&lt;i&gt;Billing Context&lt;/i&gt;&lt;br&gt;- Saldo&lt;br&gt;- Buchungen (Artikel/Gebühren)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
<mxGeometry x="800" y="80" width="200" height="100" as="geometry" />
</mxCell>
<mxCell id="ent_turnier" value="&lt;b&gt;Turnier&lt;/b&gt;&lt;br&gt;&lt;hr&gt;&lt;i&gt;Event Management Context&lt;/i&gt;&lt;br&gt;- 5-stellige Nr. (26128)&lt;br&gt;- Sparte &amp;amp; Kategorie&lt;br&gt;- Nennschluss&lt;br&gt;- n2-xxxxx.dat (Nenndaten)&lt;br&gt;- TB (Turnierbeauftragter)&lt;br&gt;- Richterkollegium" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
<mxGeometry x="120" y="280" width="200" height="140" as="geometry" />
</mxCell>
<mxCell id="ent_bewerb" value="&lt;b&gt;Bewerb&lt;/b&gt;&lt;br&gt;&lt;hr&gt;&lt;i&gt;Competition Context&lt;/i&gt;&lt;br&gt;- Nummer / Name&lt;br&gt;- Richtverfahren / Klasse&lt;br&gt;- Austragungsplatz (Ref)&lt;br&gt;- Richter-Einsatz&lt;br&gt;- Zeitplan (Dauer, Beginn)&lt;br&gt;- Geldpreis (Ja/Nein)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
<mxGeometry x="120" y="500" width="200" height="140" as="geometry" />
</mxCell>
<mxCell id="ent_abteilung" value="&lt;b&gt;Abteilung&lt;/b&gt;&lt;br&gt;&lt;hr&gt;&lt;i&gt;Competition Context&lt;/i&gt;&lt;br&gt;- Trennungs-Kriterium&lt;br&gt; (z.B. R1 vs. R2)&lt;br&gt;- Startliste" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
<mxGeometry x="120" y="720" width="200" height="100" as="geometry" />
</mxCell>
<!-- NENNUNG -->
<mxCell id="ent_nennung" value="&lt;b&gt;Nennung (Entry)&lt;/b&gt;&lt;br&gt;&lt;hr&gt;&lt;i&gt;Registration Context&lt;/i&gt;&lt;br&gt;- Status (Offen, Bestätigt)&lt;br&gt;- Ist-Nachnennung (Flag)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
<mxGeometry x="480" y="520" width="200" height="120" as="geometry" />
</mxCell>
<mxCell id="ent_reiter" value="&lt;b&gt;Reiter&lt;/b&gt;&lt;br&gt;&lt;hr&gt;&lt;i&gt;Actor Context&lt;/i&gt;&lt;br&gt;- Name&lt;br&gt;- Lizenz" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
<mxGeometry x="800" y="420" width="200" height="100" as="geometry" />
</mxCell>
<mxCell id="ent_pferd" value="&lt;b&gt;Pferd&lt;/b&gt;&lt;br&gt;&lt;hr&gt;&lt;i&gt;Actor Context&lt;/i&gt;&lt;br&gt;- Name&lt;br&gt;- Kopfnummer (lokal)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;verticalAlign=top;align=left;spacingTop=4;spacingLeft=8;" vertex="1" parent="1">
<mxGeometry x="800" y="620" width="200" height="100" as="geometry" />
</mxCell>
<!-- Connections (Relationships) -->
<mxCell id="edge_ver_tur" value="1 : N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="ent_veranstaltung" target="ent_turnier">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- NEU: Platz/Artikel Verbindungen -->
<mxCell id="edge_ver_platz" value="1 : N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" edge="1" parent="1" source="ent_veranstaltung" target="ent_austragungsplatz">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="edge_ver_artikel" value="1 : N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" edge="1" parent="1" source="ent_veranstaltung" target="ent_artikel">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="edge_ver_konto" value="1 : N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="ent_artikel" target="ent_kassa">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="edge_tur_bew" value="1 : N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="ent_turnier" target="ent_bewerb">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="edge_bew_abt" value="1 : N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="ent_bewerb" target="ent_abteilung">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- ABTEILUNG -> NENNUNG (The True Relationship) -->
<mxCell id="edge_abt_nen" value="1 : N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="ent_abteilung" target="ent_nennung">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- BEWERB -> NENNUNG (Denormalisiert) -->
<mxCell id="edge_bew_nen" value="(Denormalisiert)" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;dashed=1;strokeColor=#82b366;" edge="1" parent="1" source="ent_bewerb" target="ent_nennung">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="edge_nen_rei" value="1 : 1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" edge="1" parent="1" source="ent_nennung" target="ent_reiter">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="edge_nen_pfe" value="1 : 1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" edge="1" parent="1" source="ent_nennung" target="ent_pferd">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>