## 어떤 기능인가요? 회원의 회비 납부 여부를 `members.is_fee_paid`로 판정하도록 바꾸기 위한 준비다. 운영진 처리로 **납부 여부가 바뀌는 순간**을 아웃박스에 이벤트로 남긴다. member 쪽 컬럼 · 리스너는 후속 PR에서 한다. 구현 계획: `docs/plans/fee-payment-flow-revision.md` (PR④) 스택: #124 → #126 → #150 → #151 → #152 → **#153** (후속: member PR — `is_fee_paid` 컬럼 · 리스너 · 백필) ## 📝 작업 상세 내용 - [ ] `core:common` `common.event`에 `MemberFeePaid`, `MemberFeePaymentCanceled` 추가 (`memberId` · `studentTransferStatusId` · `occurredAt`) - [ ] 운영진 처리(`review`)에서 `paid`가 바뀔 때만 기록 — `PENDING → PAID`는 납부, `PAID → REJECTED · PENDING`은 납부 취소 - [ ] 상태 UPDATE · 아웃박스 INSERT · `payers` 동기화를 한 트랜잭션으로 ## 📁 참고 자료 (선택) - 리스너가 생기기 전 이벤트는 릴레이가 바로 발행 완료로 처리하고 7일 뒤 지운다 → 후속 member PR에 `is_fee_paid` 백필이 반드시 필요하다
Activity