Document findings and planned corrections from architecture review: outline five key gaps in the domain models (Veranstaltung, Turnier) and propose updates to align with business requirements.
Some checks failed
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Has been cancelled

This commit is contained in:
Stefan Mogeritsch 2026-04-08 23:53:07 +02:00
parent 6ba6192684
commit d7095bef47

View File

@ -1348,3 +1348,69 @@ Ich
---
Ja, bitte
---
Gemini
---
🏗️ [Lead Architect]
Perfekt. Die `settings.gradle.kts` ist korrigiert. Der events-Service ist jetzt ein vollwertiger Teil unseres Gradle-Builds.
Jetzt, wo der Compiler zuschaut, müssen wir die Umbenennungen und Aufräumarbeiten im `events-domain`-Modul nachholen, die wir in den vorherigen Phasen bereits für `entries-domain` durchgeführt haben.
Ich beginne damit, die veralteten `Dom...`-Klassen und deren Tests zu korrigieren und auf die neuen, sauberen Namen umzustellen. Das schließt auch das Löschen von Duplikaten wie `DomVeranstaltung.kt` ein.
Anschließend werde ich einen Build des gesamten Projekts anstoßen. Ich erwarte, dass wir dann die ersten echten Kompilierfehler sehen, die uns genau zeigen, wo die alten `Dom...`-Klassen noch fälschlicherweise referenziert werden. Das ist ein notwendiger und guter Schritt, um das System zu stabilisieren.
---
Ich
---
Mach bitte noch einmal eine vertiefte Überprüfung ob die vorhandenen Implementierungen unseren Vorstellungen entsprechen.
---
Gemini
---
🏗️ [Lead Architect]
Das ist eine sehr gute Initiative! Eine vertiefte Überprüfung nach solchen großen Refactorings ("Querdenken" und Abgleich mit der Realität) ist genau das, was eine gute Architektur ausmacht.
Ich habe mir die aktuellen Implementierungen im Code (`Turnier.kt`, `Veranstaltung.kt`, `Bewerb.kt` etc.) ganz genau angesehen und sie mit Ihren Praxis-Anforderungen aus dem "SuDo"-Workflow und dem ÖTO-Regelwerk verglichen.
Dabei habe ich 5 konkrete Abweichungen / Lücken gefunden, die wir im Eifer des Gefechts noch nicht zu 100 % in den Code gegossen haben:
### 🔍 Das Ergebnis der Überprüfung:
1. Die Veranstaltung (Klammer)
- **Was wir besprochen haben:** Die Veranstaltung soll eine Liste von Austragungsplätzen (austragungsplaetze) und eine Preisliste für Zusatzartikel (turnierArtikel) halten.
- **Ist-Zustand:** In der `Veranstaltung.kt` fehlen diese Listen aktuell komplett. Sie hat nur sparten, Datum und Ort.
- **To-Do:** Wir müssen val austragungsplaetze: List<Austragungsplatz> und val artikelPreisliste: List<TurnierArtikel> in die Domain-Entität Veranstaltung aufnehmen.
2. Der Turnierbeauftragte (TB) im Turnier
- **Was wir besprochen haben:** Wir wollten den Begriff "Richter-Obmann" fachlich korrekt in "Turnierbeauftragter (TB)" umbenennen, da er der Repräsentant des OEPS ist.
- **Ist-Zustand:** In der `Turnier.kt` heißt das Feld immer noch richterObmannId.
- **To-Do:** Umbenennung zu `turnierbeauftragterId` (inklusive Warn-Logik-Text: "Kein Turnierbeauftragter zugewiesen").
3. Nennschluss & Meldestellen-Flags im Turnier
- **Was wir besprochen haben:** Jedes Turnier braucht zwingend den `Nennschluss` (Datum/Uhrzeit), sowie die Checkboxen für `Nachnenngebühr` und `Nenntauschbörse`.
- **Ist-Zustand:** Diese drei Felder fehlen in der `Turnier.kt` noch komplett.
- **To-Do:** Ergänzen von `nennschluss`: `kotlinx.datetime.Instant`?, `nachnenngebuehrVerlangt: Boolean` und `nenntauschboerseAktiv: Boolean`.
4. Das Reglement
- **Was wir besprochen haben:** Auswahl zwischen ÖTO (National) und FEI (International).
- **Ist-Zustand:** Das Reglement ist im Backend noch nicht verankert.
- **To-Do:** Wir sollten ein neues Enum `ReglementE` (`OETO`, `FEI`) anlegen und dem Turnier als `reglement: ReglementE = ReglementE.OETO` hinzufügen.
5. Der Bewerb (Prüfung)
- **Ist-Zustand:** Hier sieht es hervorragend aus! Die 16 neuen Felder (`aufgabe`, `austragungsplatzId`, Zeiten, Finanzen) und die `MANUELL`e Teilung sind absolut korrekt und durchgängig im Code vorhanden.
---
### 🛠️ Nächster Schritt
Wir haben genau die Lücken identifiziert, die auftreten, wenn man das erste Fundament gießt. Sind Sie einverstanden, dass ich den **Backend Developer** anweise, diese **5 Punkte (die sogenannten "Missing Links" im Event-Management-Context)** in einem kurzen "Aufräum-Stint" glattzuziehen?
Dadurch hätten wir garantiert, dass die `Veranstaltung` und das `Turnier` exakt Ihrem Praxis-Workflow entsprechen, bevor wir uns an das große Thema "Nennungen" wagen!
---
Ich
---