feat(db+domain): add turniernummer and einschraenkungen fields for tournament scope and constraints

- **Database Changes:** Introduced `turnier_nummer` (mandatory, 5 digits) and `einschraenkungen` (mandatory, ÖTO-specific constraints) columns in `turniere` table. Seeded `turnier_nummer` with `oeps_turniernummer` where applicable.
- **Domain Models:** Extended `Turnier` and `DomTurnier` with `turnierNummer` and `einschraenkungen` fields. Added `TeilnehmerKreisE` enum for mapping restriction types.
- **Services and Controllers:** Updated repository and service operations to handle the new fields. Controllers reflect the new request models for creation and updates.
- **Validation:** Enforced input validation for `turnierNummer` format and `einschraenkungen` values.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-07 15:07:18 +02:00
parent 7bf89c58d3
commit 6b9177e818
9 changed files with 119 additions and 7 deletions
@@ -0,0 +1,23 @@
-- V4: Add turnier_nummer and einschraenkungen to turniere
-- Context: ÖTO § 3 Turniernummer + Teilnehmerkreis-Einschränkungen
ALTER TABLE IF EXISTS turniere
ADD COLUMN IF NOT EXISTS turnier_nummer VARCHAR(5);
ALTER TABLE IF EXISTS turniere
ADD COLUMN IF NOT EXISTS einschraenkungen TEXT;
UPDATE turniere
SET turnier_nummer = oeps_turniernummer
WHERE (turnier_nummer IS NULL OR turnier_nummer = '')
AND oeps_turniernummer ~ '^\d{5}$';
UPDATE turniere
SET einschraenkungen = ''
WHERE einschraenkungen IS NULL;
ALTER TABLE turniere
ALTER COLUMN turnier_nummer SET NOT NULL;
ALTER TABLE turniere
ALTER COLUMN einschraenkungen SET NOT NULL;