This commit was merged in pull request #70.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user