# Plan: Issue #21 - MemberService with CRUD operations

## Summary
Create MemberService that provides business logic for member CRUD operations. Includes
validation (required fields, date plausibility, duplicate detection), sub-entity management
(addresses, phones, emails), and soft-delete logic that hard-deletes sensitive data per
requirements section 4.5.

## Steps
1. Create `lib/Service/MemberService.php` with:
   - create(): validate required fields, check duplicates, set timestamps, persist member + sub-entities
   - find(): return member with loaded sub-entities
   - findAll(): paginated list with optional filters
   - update(): validate, track changes, update timestamps
   - delete(): soft-delete (set deleted_at, set status geloescht, hard-delete sensitive data)
   - Sub-entity CRUD: addAddress, updateAddress, deleteAddress, etc.
2. Validation logic:
   - Required fields: vorname, nachname, geburtsdatum, eintritt
   - Date plausibility: birthday not future, not >120 years ago, eintritt not before birthday
   - Duplicate detection: warn on matching vorname + nachname + geburtsdatum

## AC Verification Checklist
1. [ ] MemberService class exists with proper DI constructor
2. [ ] Create method validates required fields and checks for duplicates
3. [ ] Read method returns member with sub-entities (addresses, phones, emails)
4. [ ] Update method validates fields and updates timestamps
5. [ ] Soft-delete sets status to geloescht and hard-deletes sensitive data
6. [ ] Date plausibility checks implemented
7. [ ] Sub-entity management methods exist (addresses, phones, emails)
8. [ ] Proper exception handling with meaningful error messages
