Document and implement CSN-C-NEU mandatory division rules: Add TURNIER_KLASSEN.md detailing forced divisions by license categories; establish uniform labels and keys (e.g., LZF_ONLY and R1_PLUS); draft optional youth division rules. Extend validation in Validierungsregeln.md. Implement FEI-ID resolver and mapping endpoint in Masterdata service.

This commit is contained in:
2026-04-02 18:36:59 +02:00
parent bbe5b1a357
commit 4ae701d969
8 changed files with 540 additions and 25 deletions
@@ -0,0 +1,29 @@
package at.mocode.masterdata.domain.service
/**
* Auflösung von FEI-IDs: akzeptiert numerische IDs (PassThrough) und LegacyReferenzcodes
* und liefert wenn bekannt die zugehörige numerische FEIID zurück.
*/
interface FeiIdResolver {
/**
* Löst eine eingegebene FEIKennung auf.
*
* @param input Benutzer-/Importeingabe (numerisch 78 Stellen oder LegacyCode 3Z+2B+2Z)
* @return [FeiIdResolution] mit normalisierter numerischer ID, oder null wenn unbekannt/ungültig
*/
fun resolve(input: String): FeiIdResolution?
}
/**
* Ergebnis der FEIID Auflösung.
*
* @property normalizedNumericId Numerische FEIID (78 Ziffern) als String
* @property sourceFormat "NUMERIC" | "LEGACY_CODE"
* @property wasMapped true, wenn aus Legacy nach numerisch gemappt wurde
*/
data class FeiIdResolution(
val normalizedNumericId: String,
val sourceFormat: String,
val wasMapped: Boolean
)