feat: make Geburtsdatum optional for members (Closes #162) #190

Merged
shahondin1624 merged 1 commits from feature/issue-162-make-geburtsdatum-optional into main 2026-04-10 19:38:26 +02:00
Owner

Summary

Makes the geburtsdatum field optional for members so that Erziehungsberechtigte, honorary members, and incomplete legacy records can be managed without requiring a birth date.

Changes

  • Migration: New Version000015 makes geburtsdatum nullable in mv_members
  • Entity: Member::$geburtsdatum changed from string to ?string (nullable)
  • Backend validation: Removed geburtsdatum from required fields in MemberService, ImportService, and EntityImportService
  • Duplicate detection: Skipped when birthday is missing (cannot reliably detect duplicates by name alone)
  • Null guards: Added in CalendarSyncService (skip birthday events), StufeService (skip age suggestions), FeeCalculationService (sort last), CsvExportService (export empty cell)
  • UI: Geburtsdatum field no longer marked required, age display hidden when birthday is null, empty member default is null instead of ''

Closes #162

## Summary Makes the `geburtsdatum` field optional for members so that Erziehungsberechtigte, honorary members, and incomplete legacy records can be managed without requiring a birth date. ### Changes - **Migration**: New `Version000015` makes `geburtsdatum` nullable in `mv_members` - **Entity**: `Member::$geburtsdatum` changed from `string` to `?string` (nullable) - **Backend validation**: Removed `geburtsdatum` from required fields in `MemberService`, `ImportService`, and `EntityImportService` - **Duplicate detection**: Skipped when birthday is missing (cannot reliably detect duplicates by name alone) - **Null guards**: Added in `CalendarSyncService` (skip birthday events), `StufeService` (skip age suggestions), `FeeCalculationService` (sort last), `CsvExportService` (export empty cell) - **UI**: Geburtsdatum field no longer marked required, age display hidden when birthday is null, empty member default is `null` instead of `''` Closes #162
shahondin1624 added 1 commit 2026-04-10 19:38:21 +02:00
- Add migration to make geburtsdatum column nullable in mv_members
- Update Member entity to use nullable string for geburtsdatum
- Remove geburtsdatum from required fields in MemberService validation
  and both import services (ImportService, EntityImportService)
- Skip duplicate check when birthday is missing (cannot reliably match)
- Add null guards in CalendarSyncService, StufeService,
  FeeCalculationService, and CsvExportService
- Remove required marker from MemberForm Geburtsdatum field
- Handle null birthday gracefully in MemberDetail age display
- Members without birthday sort last in fee calculation ordering

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
shahondin1624 merged commit 4316c5f2b5 into main 2026-04-10 19:38:26 +02:00
shahondin1624 deleted branch feature/issue-162-make-geburtsdatum-optional 2026-04-10 19:38:26 +02:00
Sign in to join this conversation.