- MemberMapper: 8 new *WithRelations() methods that fetch members with
addresses, phones, and emails in a single query using LEFT JOINs
- MemberMapper: addJoinClauses() and fetchWithRelations() private helpers
that handle JOIN duplication (one member × multiple sub-entities)
- MemberService: refactored findAll, findByFamily, findByStatus, search,
findByBirthdayThisMonth, findWithUnpaidFees, findFiltered, fullTextSearch
to delegate to joined mapper methods
- MemberService: added arrayToMember() and arrayToAddress() helpers so
buildMatchContext() works with flat-array results from fullTextSearch
- MemberServiceTest: updated all existing tests to mock new method names
and return flat-array format with nested sub-entities
- MemberServiceTest: added 10 new tests covering joined methods, backward
compatibility, and correct shape of returned data
- Moved issue-200 plan from open/ to done/