[리퍼럴 PR2] 비즈니스 로직 — 리퍼럴 보상/추적 서비스
ID: afa229d0-c6fc-4dc6-afb1-939cb2b56923
## 설명
리퍼럴 추적 및 보상 로직을 서비스 객체로 구현.
### 서비스
1. **Referrals::TrackingService** — 신규 가입 시 referral_code로 Referral(pending) 생성
- 자기 자신 추천 방지
- 이미 추천인 있으면 무시
2. **Referrals::RewardService** — 강점 진단 완료 시 리퍼럴 보상
- 조건: referee의 첫 strength 진단 완료
- referrer의 월간 보상 < 10개
- referrer diagnosis_balance +1
- referral status → "rewarded"
- 중복 보상 방지
## 완료 기준
- [ ] TrackingService: 정상 생성, 자기추천 방지, 중복 방지
- [ ] RewardService: 보상 지급, 월 10개 상한, 중복 방지, strength 아닌 진단은 무시
- [ ] 테스트 커버리지 95%+
## 의존성
PR#1 완료 후
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
활동 로그
-
팀팀리드 상태 변경: 리뷰 → 완료
2026년 03월 26일 06:35:33
-
팀팀리드 팀 작업 완료 - [리퍼럴 PR2] 비즈니스 로직
2026년 03월 26일 05:45:27
상세 보기
## 수정된 기능
- Referrals::TrackingService: 신규 가입 시 referral_code → Referral(pending) 생성
- Referrals::RewardService: strength 진단 완료 → referrer diagnosis_balance +1, 월 10개 상한## 테스트 결과
- 12 runs, 24 assertions, 0 failures## 기술적 결정
- DiagnosisType 연관관계: `category` (not `diagnosis_category`)
- 테스트에서 referral_code는 update_column으로 설정 (fixture에 없으므로) -
팀팀리드 상태 변경: 진행 중 → 리뷰
2026년 03월 26일 05:45:23
-
팀팀리드 위임: developer-1에게 'Referrals::TrackingService + RewardService TDD 구현' 작업 배정
2026년 03월 26일 05:41:05
-
팀팀리드 티켓 클레임 완료
2026년 03월 26일 05:40:46
-
팀팀리드 상태 변경: 할 일 → 백로그
2026년 03월 26일 05:28:18