# Plan: Issue #20 - Create Member entity and mapper ## Summary Create entity classes (Member, Address, Phone, Email) and their corresponding QBMapper classes. The Member entity maps all columns from oc_mv_members. The MemberMapper provides standard CRUD plus query methods (findById, findAll, findByFamily, findByStatus, findByStufe, search). Sub-entity mappers (AddressMapper, PhoneMapper, EmailMapper) allow loading related data. ## Steps 1. Create `lib/Db/Member.php` - Entity extending `\OCP\AppFramework\Db\Entity` 2. Create `lib/Db/MemberMapper.php` - QBMapper with required query methods 3. Create `lib/Db/Address.php` - Entity for addresses 4. Create `lib/Db/AddressMapper.php` - QBMapper for addresses 5. Create `lib/Db/Phone.php` - Entity for phones 6. Create `lib/Db/PhoneMapper.php` - QBMapper for phones 7. Create `lib/Db/Email.php` - Entity for emails 8. Create `lib/Db/EmailMapper.php` - QBMapper for emails ## AC Verification Checklist 1. [ ] Member entity extends Entity with all mv_members columns mapped 2. [ ] MemberMapper extends QBMapper with findById, findAll, findByFamily, findByStatus, findByStufe, search methods 3. [ ] Address/Phone/Email entities created with proper column mappings 4. [ ] AddressMapper/PhoneMapper/EmailMapper created with findByMemberId methods 5. [ ] All PHP classes have correct namespace and imports 6. [ ] Mapper constructors use IDBConnection correctly 7. [ ] PHP syntax is valid