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:
+6
@@ -3,6 +3,7 @@
|
||||
package at.mocode.events.domain.model
|
||||
|
||||
import at.mocode.core.domain.model.SparteE
|
||||
import at.mocode.core.domain.model.TeilnehmerKreisE
|
||||
import at.mocode.core.domain.model.TurnierkategorieE
|
||||
import at.mocode.core.domain.model.TurnierStatusE
|
||||
import at.mocode.events.domain.validation.TurnierBewerbDescriptor
|
||||
@@ -48,9 +49,11 @@ data class DomTurnier(
|
||||
|
||||
// Basis-Informationen
|
||||
var name: String,
|
||||
val turnierNummer: String,
|
||||
var sparte: SparteE,
|
||||
var kategorie: TurnierkategorieE,
|
||||
var datum: LocalDate,
|
||||
var einschraenkungen: List<TeilnehmerKreisE> = emptyList(),
|
||||
|
||||
// Funktionäre
|
||||
@Serializable(with = UuidSerializer::class)
|
||||
@@ -98,6 +101,9 @@ data class DomTurnier(
|
||||
if (name.isBlank()) {
|
||||
warnings.add("Turniername ist erforderlich.")
|
||||
}
|
||||
if (!Regex("^\\d{5}$").matches(turnierNummer)) {
|
||||
warnings.add("Turniernummer muss exakt 5 Ziffern enthalten (z.B. 26128).")
|
||||
}
|
||||
maxBewerbe?.let { max ->
|
||||
if (max <= 0) {
|
||||
warnings.add("Maximale Bewerb-Anzahl muss positiv sein.")
|
||||
|
||||
Reference in New Issue
Block a user