Commit Graph

801 Commits

Author SHA1 Message Date
eda18a8ff2 Remove nennung-feature (domain models, DI modules, and UI components). 2026-04-11 13:04:23 +02:00
84128432e3 docs(architecture): add specification for status automaton and time schedule synchronization logic
- Added conceptual documentation detailing the status automaton for handling entry states and its integration with dynamic time schedule adjustments (`status-automat-nennungen-de.md`).
- Updated master roadmap with the completion of the status automaton concept.
- Extended changelog to reflect the addition of the specified architecture document.
2026-04-11 12:28:14 +02:00
7480aed4d1 refactor(entries-service): clean up unused imports and adjust isTurnierPublished visibility 2026-04-11 12:23:53 +02:00
0aa1a1b9b7 feat(entries+time-scheduling): add support for automatic breaks and inspection type configurations
- **Domain Enhancements:**
  - Introduced `PausenKonfiguration` and `BesichtigungsBlock` entities to handle automatic breaks and inspection scheduling.
  - Added `BesichtigungsTypE` enum for inspection types (`ZU_FUSS`, `ZU_PFERD`).
  - Updated `Bewerb` and `Abteilung` models to include pause and inspection type fields.

- **Service Updates:**
  - Enhanced `StartlistenService` to calculate start times, accounting for breaks and inspection buffers.
  - Extended `BewerbService` to support patchable time scheduling via new `updateZeitplan` API.

- **Persistence Changes:**
  - Updated tables (`BewerbTable`, `AbteilungTable`) to persist break configurations and inspection types.
  - Implemented repository mappings to include these new fields.

- **Testing:**
  - Introduced `BewerbeZeitplanIntegrationTest` to validate new scheduling behaviors, including automatic pauses and inspection handling.

- **Documentation:**
  - Added rulebook and conceptual documents for inspection and scheduling logic in `docs/01_Architecture/`.
2026-04-11 12:21:42 +02:00
97ed8ad20a refactor(tests): clean up unused imports in EntriesIsolationIntegrationTest
Some checks are pending
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Waiting to run
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Waiting to run
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Waiting to run
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Waiting to run
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Waiting to run
2026-04-10 14:42:52 +02:00
1ba4845f6c feat(frontend+billing): integrate billing UI and navigation into Turnier module
- **Navigation Updates:**
  - Added `AppScreen.Billing` route for participant billing linked to an event and tournament.

- **UI Additions:**
  - Introduced `BillingScreen` and `BillingViewModel` for participant account management and manual transactions.
  - Updated `TurnierAbrechnungTab` to include `BillingScreen` and enable account interaction.

- **Turnier Enhancements:**
  - Enhanced `NennungenTabContent` to support navigation to billing via a new interaction.
  - Added billing feature as a dependency to `turnier-feature`.

- **Billing Domain:**
  - Extended `Money` to include subtraction operation and improved formatting for negative amounts.
  - Added DTOs (`TeilnehmerKontoDto`, `BuchungDto`, `BuchungRequest`) for seamless data exchange with backend.

- **Test Improvements:**
  - Updated `PreviewTurnierAbrechnungTab` to include interactive billing placeholder.

- **Misc Updates:**
  - Enhanced breadcrumb navigation for billing in `DesktopMainLayout` for better user experience.
2026-04-10 14:30:54 +02:00
a7e1872d10 Update roadmaps to reflect completion of billing, entries integration, and ZNS importer tasks. 2026-04-10 13:05:32 +02:00
02c6da146e refactor(billing+entries): remove unused import and adjust tenant transaction signature 2026-04-10 12:57:30 +02:00
c1fadac944 feat(entries+billing): integrate automatic fee booking for entries with billing service
- **Entries-Service Updates:**
  - Implemented automatic booking of fees (entry fees and late fees) during entry submission using `TeilnehmerKontoService`.
  - Enhanced `Bewerb` entity with financial fields (`nenngeldCent`, `nachnenngebuehrCent`).
  - Added Flyway migration to update `bewerbe` table with new financial fields.
  - Updated `EntriesServiceApplication` to include billing package scanning for integration.

- **Billing-Service Enhancements:**
  - Adjusted `TeilnehmerKontoService` to support fetching accounts by event and person.
  - Improved database configuration to handle missing JDBC URLs during tests.

- **Tests:**
  - Added integration tests to validate fee booking logic for entries, including late fee scenarios.
  - Introduced H2 database setup for test isolation.

- **Misc:**
  - Updated tenant-aware transactions to support H2 and PostgreSQL dialects.
  - Adjusted log and error handling for robust integration between services.
2026-04-10 12:49:03 +02:00
eef17b3067 feat(billing): implement REST API, database config, and tests for billing service
- **REST API:** Added `BillingController` with endpoints for managing participant accounts and transactions, including history retrieval.
- **Database Configuration:** Introduced `BillingDatabaseConfiguration` to initialize database schema using Exposed.
- **Testing:** Added integration tests for `TeilnehmerKontoService` using H2 in-memory database.
2026-04-10 12:27:02 +02:00
21f3a57e6e feat(billing): introduce billing domain and service infrastructure
- **Billing Domain:**
  - Added Kotlin Multiplatform project with domain models (`TeilnehmerKonto`, `Buchung`, `BuchungsTyp`) to represent billing entities.
  - Defined serialization strategies using `InstantSerializer`.

- **Service Implementation:**
  - Introduced `BillingServiceApplication` as the main entry point for the billing service.
  - Developed `TeilnehmerKontoService` for account management and transactions.

- **Persistence Layer:**
  - Implemented Exposed repositories (`ExposedTeilnehmerKontoRepository`, `ExposedBillingRepositories`) for database interaction.
  - Added table definitions (`TeilnehmerKontoTable`, `BuchungTable`) with indexes for efficient querying.

- **Build Configuration:**
  - Setup Gradle build files for billing domain and service modules with dependencies for Kotlin, Serialization, Spring Boot, and Exposed.

- **Test Additions:**
  - Extended ZNS importer tests with new scenarios for qualification parsing
2026-04-10 12:18:03 +02:00
bab95d14f4 feat(frontend): update tooltip positioning in TurnierBewerbeTab for improved UI clarity
- Refined `TooltipBox` in `TurnierBewerbeTab` to use `TooltipAnchorPosition.Above`, enhancing tooltip visibility and alignment for warnings.
2026-04-10 11:44:17 +02:00
e7d7e43ccf feat(domain+frontend): implement structured division warnings and enhance validation rules
- **Domain Updates:**
  - Introduced `AbteilungsWarnung` entity for structured warning handling compliant with ÖTO § 39.
  - Added validation rules for mandatory and optional division thresholds and structural completeness.
  - Implemented `CompetitionWarningService` and `AbteilungsRegelService` for domain-centric validations.
  - Updated domain models (`Bewerb`, `Abteilung`) to reflect structured warning logic.

- **Services:**
  - Expanded `BewerbService` to include warning validation through `CompetitionWarningService`.

- **Frontend Enhancements:**
  - Updated `TurnierBewerbeTab` to display warnings using tooltips with clear descriptions and structured formatting.
  - Modified `BewerbUiModel` to handle warnings and integrate them into the UI.

- **Persistence:**
  - Implemented `CompetitionRepositoryImpl` to map database rows to the new domain models and validation logic.

- **Testing:**
  - Added comprehensive unit tests for `validateStrukturellesTeilung` and division-specific warnings.
  - Enhanced existing tests to validate the new warning structure and code-based assertions.

- **Docs:**
  - Updated roadmap to reflect the completion of structural warnings implementation.
2026-04-10 11:37:34 +02:00
22c631ec43 feat(core+frontend): enhance SyncEvent model and integrate sync handling in BewerbViewModel
- **Core Updates:**
  - Expanded `SyncEvent` model with additional fields (`eventId`, `sequenceNumber`, `originNodeId`, `createdAt`, `checksum`, `schemaVersion`) for improved event tracking and validation.
  - Updated event classes (`PingEvent`, `PongEvent`, `DataChangedEvent`, `DataRequestEvent`) to align with the extended `SyncEvent`.

- **Frontend Enhancements:**
  - Enhanced `BewerbViewModel` to handle sync events (`PingEvent`, `DataChangedEvent`) and observe connected peers using `SyncManager`.
  - Added support for
2026-04-10 11:09:33 +02:00
0d75c9b664 refactor(core+frontend): remove unused imports and improve coroutine syntax consistency
- Removed unnecessary imports across multiple modules for cleaner code.
- Updated `kotlinx.coroutines.delay` to use `Duration.milliseconds` for improved readability and type safety in `SyncManager`.
2026-04-10 10:58:45 +02:00
8726129b96 feat(core+frontend): add P2P sync infrastructure with WebSocket support
- **Core Updates:**
  - Implemented `P2pSyncService` interface with platform-specific WebSocket implementations (`JvmP2pSyncService` and no-op for JS).
  - Developed `SyncEvent` sealed class hierarchy to handle peer synchronization events (e.g., `PingEvent`, `PongEvent`, `DataChangedEvent`, etc.).

- **Frontend Integration:**
  - Introduced `SyncManager` to manage peer discovery and synchronization, coupled with `NetworkDiscoveryService`.
  - Updated dependency injection to include `syncModule` for platform-specific sync service initialization.
  - Enhanced `BewerbViewModel` to support new sync capabilities, including observing sync events and UI updates for connected peers.

- **Backend Enhancements:**
  - Added ZNS-specific fields (`zns_nummer`, `zns_abteilung`) to Bewerb table for idempotent imports.
  - Introduced import ZNS logic to handle duplicates and align with SyncManager updates.

- **UI Improvements:**
  - Enhanced `TurnierBewerbeTab` with updated dialogs (ZNS imports, sync status) and dynamic previews.
  - Improved network syncing feedback and error handling in frontend components.

- **DB Changes:**
  - Added migration for new column fields in the Bewerb table with relevant indexing for ZNS import optimizations.
2026-04-10 10:55:00 +02:00
6b6965bbbb refactor(frontend): use Duration.milliseconds for delay in BewerbeTab coroutine loop 2026-04-10 10:29:37 +02:00
721d991c5e feat(core+frontend): integrate mDNS-based network discovery and update UI
- **Network Discovery Service:**
  - Added platform-specific `DiscoveryModule` with JmDNS-based `JmDnsDiscoveryService` for JVM and no-op implementation for JS.
  - Implemented service and device discovery using mDNS to enable peer-to-peer synchronization within LAN.
  - Registered the module in Koin for dependency injection and integrated it with `networkModule`.

- **Frontend Integration:**
  - Enhanced `BewerbViewModel` with intents and actions for starting, stopping, and refreshing network scans.
  - Introduced polling for discovered services during an active scan.

- **UI Additions:**
  - Added a `NetworkDiscoveryPanel` in `TurnierBewerbeTab` to display discovered services and indicate scan state.
  - Updated action buttons to include toggle functionality for network scans.
2026-04-10 10:27:20 +02:00
c06eb79cba feat(frontend+domain): add start list repository, enhance Bewerb model, and update view models
- **StartlistenRepository:**
  - Introduced a new repository for generating and retrieving start lists, with `DefaultStartlistenRepository` implementation for remote API integration.

- **Bewerb Enhancements:**
  - Updated `Bewerb` and `BewerbDto` models to include additional details (e.g., `tag`, `platz`, `sparte`, etc.).
  - Adjusted mappers to align with model updates.

- **ViewModel Updates:**
  - Extended `BewerbViewModel` to integrate with `StartlistenRepository` for start list generation and preview.
  - Refactored loading logic in `BewerbViewModel` to display errors and handle repository responses properly.

- **UI Enhancements:**
  - Improved start list preview layout in `TurnierBewerbeTab` with additional styling and dynamic fields.
  - Added buttons to confirm or cancel start list changes in the preview modal.

- **Dependency Injection:**
  - Registered `DefaultStartlistenRepository` in the `TurnierFeatureModule` and updated `BewerbViewModel` factory.
2026-04-10 10:10:46 +02:00
fbed4d34cc refactor(frontend): simplify imports and update syntax for wizard steps and delay durations
- Consolidated `material3` imports in `CreateBewerbWizardScreen` and `TurnierBewerbeTab` for cleaner code.
- Switched `WizardStep.values()` to `WizardStep.entries.toTypedArray()` for improved readability.
- Changed `kotlinx.coroutines.delay` argument to use `Duration.milliseconds` for enhanced clarity and type safety.
2026-04-10 10:04:25 +02:00
363aa80fe4 feat(core+frontend+domain): add ZNS Bewerb parser and integrate start list feature
- **Parser Implementation:**
  - Introduced `ZnsBewerbParser` to parse n2-XXXXX.dat files and map B-Satz lines to the `ZnsBewerb` domain model.
  - Added test coverage for parsing B-Satz lines and edge cases in `ZnsParserTest`.

- **Frontend Integration:**
  - Integrated ZNS import functionality into the `BewerbeTabContent` for uploading and previewing Bewerb data before import.
  - Enhanced `BewerbViewModel` with state and intents for managing ZNS import, preview dialogs, and import confirmation.
  - Supported start list generation and added modal for previewing generated start lists.

- **Domain Services:**
  - Implemented `StartlistenService` to generate and calculate start times for start lists with respect to participant preferences.
  - Added extensive test coverage in `StartlistenServiceTest` to validate sorting, preferences, and time calculations.

- **UI Enhancements:**
  - Updated `Bewerbe` tab layout with search, filtering, and action buttons for ZNS import and start list generation.
  - Introduced dialogs for ZNS import previews and start list previews.
2026-04-10 09:59:31 +02:00
a3007b01ee Add archived screenshots documentation and migrate new assets to docs/80_Assets/. Include system mockups, tournament files, and dashboard visuals for Neumarkt 2026.
Some checks are pending
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Waiting to run
2026-04-09 22:10:55 +02:00
ffe73b9061 Remove obsolete chat logs and migrate relevant assets from docs/Neumarkt2026/ and docs/BilderSuDo/ to docs/80_Assets/. Update references and initiate consolidation of documentation. 2026-04-09 22:02:14 +02:00
452c50c31b docs(frontend): add navigation and flow diagrams for wizard steps
Some checks failed
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Has been cancelled
- Created `Navigation_Wizard_Flows.drawio` to map the Navigation Rail and 3-step wizard process (Veranstaltung → Turnier → Bewerbe) with detailed routes and guards.
- Introduced `_mapping_alt-zu-neu.md` to document screenshot renaming and restructuring for enhanced organization.
- Refined folder layout in `docs/06_Frontend/Screenshots/` for flows and components.
2026-04-09 15:52:44 +02:00
4d6a1d5f16 docs(c4): migrate architecture diagrams to draw.io and refine container/workflow visualizations
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
- Replaced outdated `.puml` and `.mermaid` diagrams with modernized `.drawio` versions for enhanced clarity.
- Added `container_diagram.drawio` to depict offline-first architecture and backend synchronization workflow.
- Introduced `workflow_turnieranlage.drawio` to visualize the tournament creation process (3-step wizard).
- Archived legacy diagrams under `docs/01_Architecture/_archive` for reference.
2026-04-09 14:15:31 +02:00
276e3cc3dd docs(c4): migrate architecture diagrams to draw.io and refine container/workflow visualizations
- Replaced outdated `.puml` and `.mermaid` diagrams with modernized `.drawio` versions for enhanced clarity.
- Added `container_diagram.drawio` to depict offline-first architecture and backend synchronization workflow.
- Introduced `workflow_turnieranlage.drawio` to visualize the tournament creation process (3-step wizard).
- Archived legacy diagrams under `docs/01_Architecture/_archive` for reference.
2026-04-09 11:32:06 +02:00
c11bffef22 feat(docs+domain): refine event and tournament models, align with updated domain terminology
- **Documentation:**
  - Added `2026-04-09_Session_Log_Turnier_Veranstaltung_Domain_Alignment.md` to document validation and updates to `Veranstaltung` and `Turnier` domain models.
  - Updated `Overview.md` to reflect new terminology and added attributes for `Veranstaltung` (`Austragungsplätze`, `Artikel-Preisliste`) and `Turnier`
(`Turnierbeauftragter`, updated `Reglement`, `Nennschluss`, `Nachnenngebühr`, and `Nenntauschbörse`).

- **Domain Updates:**
  - Adjusted `Turnier` model: renamed `richterObmannId` → `turnierbeauftragterId`, added missing fields (`nennschluss`,
2026-04-09 10:09:21 +02:00
f8662e973e docs: add class diagram for core entities in C4 architecture
- Created `class_diagram_core.drawio` to visualize core domain entities (`Veranstaltung`, `Platz`, `Turnier`, etc.).
- Included relationships and associations between entities such as 1:N and reference mappings.
- Structured diagram to align with Clean Architecture principles for better domain comprehension.
2026-04-09 09:24:35 +02:00
d7095bef47 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
2026-04-08 23:53:12 +02:00
6ba6192684 Rename DomBewerbTest to BewerbTest to align with updated domain model naming conventions. 2026-04-08 23:52:59 +02:00
ee520073f0 Standardize exception naming in VeranstaltungController: replace unused exception variable names with _ for cleaner and more concise code. 2026-04-08 23:01:18 +02:00
f2dff2a4d8 Remove Dom prefix from domain models: rename classes to reflect business terminology, update references in tests, repositories, and services; add ADR for new naming conventions. 2026-04-08 23:00:52 +02:00
e83b09fd63 Refactor events-service Gradle build: streamline plugin and dependency declarations, resolve naming inconsistencies, and update module references for improved maintainability. 2026-04-08 23:00:36 +02:00
5d1c89438c Migrate UUID handling in VeranstaltungRepositoryImpl: standardize conversion functions, update methods for entity mapping, and refactor queries for enhanced consistency and type safety. 2026-04-08 23:00:23 +02:00
bb4b5924d1 Extend Bewerb table and add BewerbRichterEinsatz table: introduce new properties, indexes, and mappings to support richer domain model and scheduling capabilities. 2026-04-08 23:00:16 +02:00
84403287a1 Extend Bewerb table and add BewerbRichterEinsatz table: introduce new properties, indexes, and mappings to support richer domain model and scheduling capabilities. 2026-04-08 23:00:03 +02:00
e4f22096ed Extend Bewerb repository and service: add RichterEinsatz handling, enhance property mapping, and align DTOs with updated domain model. 2026-04-08 22:59:38 +02:00
8b6ea11d46 Extend Bewerb DTOs and APIs: add comprehensive properties, mapping functions, and RichterEinsatz support, and align backend and frontend implementations. 2026-04-08 22:59:26 +02:00
2d42578378 Remove Dom prefix from domain models: delete DomVeranstaltung, rename models like DomNennung to Nennung, update references in repositories, services, and tests for consistency. 2026-04-08 22:59:15 +02:00
085656a85b Extend Bewerb domain model: add new properties (e.g., Beschreibung, Aufgabe, BeginnZeitTyp), update Enums, and align repository structures. 2026-04-08 22:58:58 +02:00
d91d88855e Add Bewerb extensions and related infrastructure: introduce V5 and V6 migrations with new columns, constraints, indexes, and tables (e.g., Austragungsplatz, RichterEinsätze, TurnierArtikel) to support extended domain models and reporting capabilities. 2026-04-08 22:58:40 +02:00
da7afec9d7 Add domain models: Austragungsplatz, TurnierArtikel, and RichterEinsatz. 2026-04-08 22:58:26 +02:00
8bc6f8e1df Register events modules in Gradle build and refactor VeranstaltungController: remove unused use cases, streamline request handling, and improve error responses. 2026-04-08 22:56:21 +02:00
df8bce4277 Add new chat session and extend Gemini conversation: document architecture discussions, domain model updates, Dom prefix removal plan, and phase-based roadmap for Bewerb and related entities. 2026-04-08 20:17:26 +02:00
2e4cb6d042 Enhance ZNS import documentation: add detailed steps for database initialization, parser validation, import strategy optimization, and frontend integration. 2026-04-08 20:17:20 +02:00
3ce085ea18 docs: add class diagram for core entities in C4 architecture
Some checks failed
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Has been cancelled
- Created `class_diagram_core.drawio` to visualize core domain entities (`Veranstaltung`, `Platz`, `Turnier`, etc.).
- Included relationships and associations between entities such as 1:N and reference mappings.
- Structured diagram to align with Clean Architecture principles for better domain comprehension.
2026-04-08 14:39:06 +02:00
8f0640810b docs: add C4 model for renamed and extended domain components
- Introduced `Kernentitaeten_Umbenennung.puml` to document the planned renaming and structural updates to core domain entities.
- Visualized key contexts (`Event Management`, `Billing`, `Competition`, `Registration`, `Actor`) and their relationships.
- Included recommendations for simplification of naming conventions in Clean Architecture.
2026-04-08 14:12:07 +02:00
7d8596570a docs: add session notes on hierarchy visualization and class naming discussion
- Logged additional ideas in `Chat-Verlauf-Gemini_2026-04-07.md` regarding visualizing hierarchy, inheritance, and class structure.
- Documented discussion on reevaluating "Dom..." class prefixes and planning for implementation steps.
2026-04-08 14:11:45 +02:00
31eb8f083d docs: improve formatting and structure for "Chat-Verlauf" logs
- Standardized section headers in `Chat-Verlauf-Gemini_2026-04-07.md` for better clarity.
- Adjusted markdown formatting for participant labels ("Ich", "Gemini") to ensure consistent separation and readability.
- Leveraged markdown lists to enhance the readability of ÖTO § 3 guidelines and constraints.
- Resolved minor inconsistencies in indentation to ensure visual alignment across all sections.
2026-04-08 13:10:37 +02:00
9ff543dc14 feat(domain+infra+docs): define and integrate essential tournament foundation components
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
- **Domain Enhancements:**
  - Introduced `TurnierNummer` (mandatory, 5 digits) field in `DomTurnier` to establish unique tournament identification.
  - Added `TeilnehmerKreisE` enum representing participation constraints defined in ÖTO § 3 (e.g., J, P, H).
  - Extended `DomTurnier` model with `einschraenkungen` field to store applicable participant restrictions.

- **Infrastructure Updates:**
  - Updated `TurnierTable` to include `turnier_nummer` (varchar) and `einschraenkungen` (text/JSON).
  - Created Flyway migration to add new columns to `turniere` table and backfill existing data.
  - Enhanced repository methods (`TurnierRepositoryImpl`) to handle the new fields.

- **Validation and API Expansion:**
  - Added validation for mandatory 5-digit format of `TurnierNummer` and ensured `einschraenkungen` values conform to the ÖTO spec.
  - Updated relevant APIs (`CreateTurnierUseCase`, `TurniereController`) to accept and process new fields.

- **Documentation:**
  - Updated the glossary in `Ubiquitous_Language.md` to include new concepts (`TurnierNummer` and participation constraints).

This enhancement lays the groundwork for ÖTO-compliant tournament management with precise scope and constraint controls.
2026-04-07 19:29:03 +02:00