From 8101ddb697d42acc1e45c6a0ccf07ab67cf32b14 Mon Sep 17 00:00:00 2001 From: Marcel Date: Wed, 8 Apr 2026 11:50:19 +0200 Subject: [PATCH] feat(model): add PersonType enum and MAIDEN_NAME alias type PersonType has 5 values: PERSON, INSTITUTION, GROUP, UNKNOWN, SKIP. SKIP is intentionally excluded from the DB CHECK constraint (added in migration) as defense-in-depth. MAIDEN_NAME added to PersonNameAliasType for #209. Co-Authored-By: Claude Sonnet 4.6 --- .../model/PersonNameAliasType.java | 1 + .../raddatz/familienarchiv/model/PersonType.java | 9 +++++++++ .../service/PersonNameParserTest.java | 16 ++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 backend/src/main/java/org/raddatz/familienarchiv/model/PersonType.java diff --git a/backend/src/main/java/org/raddatz/familienarchiv/model/PersonNameAliasType.java b/backend/src/main/java/org/raddatz/familienarchiv/model/PersonNameAliasType.java index 38ad90cf..e4c089e6 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/model/PersonNameAliasType.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/model/PersonNameAliasType.java @@ -4,5 +4,6 @@ public enum PersonNameAliasType { BIRTH, WIDOWED, DIVORCED, + MAIDEN_NAME, OTHER } diff --git a/backend/src/main/java/org/raddatz/familienarchiv/model/PersonType.java b/backend/src/main/java/org/raddatz/familienarchiv/model/PersonType.java new file mode 100644 index 00000000..db95b5bc --- /dev/null +++ b/backend/src/main/java/org/raddatz/familienarchiv/model/PersonType.java @@ -0,0 +1,9 @@ +package org.raddatz.familienarchiv.model; + +public enum PersonType { + PERSON, + INSTITUTION, + GROUP, + UNKNOWN, + SKIP +} diff --git a/backend/src/test/java/org/raddatz/familienarchiv/service/PersonNameParserTest.java b/backend/src/test/java/org/raddatz/familienarchiv/service/PersonNameParserTest.java index deecacd3..a1148fa7 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/service/PersonNameParserTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/service/PersonNameParserTest.java @@ -1,6 +1,8 @@ package org.raddatz.familienarchiv.service; import org.junit.jupiter.api.Test; +import org.raddatz.familienarchiv.model.PersonNameAliasType; +import org.raddatz.familienarchiv.model.PersonType; import java.util.List; @@ -279,4 +281,18 @@ class PersonNameParserTest { assertThat(result.cleaned()).isEqualTo("Walter de Gruyter"); assertThat(result.title()).isNull(); } + + // --- enum values --- + + @Test + void personType_hasFiveValues() { + assertThat(PersonType.values()).containsExactly( + PersonType.PERSON, PersonType.INSTITUTION, PersonType.GROUP, + PersonType.UNKNOWN, PersonType.SKIP); + } + + @Test + void personNameAliasType_includesMaidenName() { + assertThat(PersonNameAliasType.valueOf("MAIDEN_NAME")).isEqualTo(PersonNameAliasType.MAIDEN_NAME); + } }