[리퍼럴 PR1] DB 레이어 — 크레딧 확장 + Referral 테이블
ID: 2b4ebfa8-5102-47d8-ac38-de03910fc0f8
## 설명
진단 크레딧 + 리퍼럴 보상 시스템의 DB 기반 구축.
### 마이그레이션
1. `add_diagnosis_balance_to_user_credits` — diagnosis_balance(integer, default: 0)
2. `add_credit_type_to_credit_transactions` — credit_type(string, default: "report")
3. `add_referral_code_to_users` — referral_code(string, unique index)
4. `create_referrals` — referrer_id, referee_id, status, rewarded_at, diagnosis_session_id
### 모델 변경
- `UserCredit`: diagnosis_balance 관련 메서드 (deduct_diagnosis!, add_diagnosis!, diagnosis_sufficient?)
- `CreditTransaction`: credit_type validation ('report' | 'diagnosis'), transaction_type에 'referral' 추가
- `User`: referral_code 생성, has_many :referrals_given/received
- `Referral` (신규): belongs_to referrer/referee, status 관리
## 완료 기준
- [ ] 4개 마이그레이션 성공 (가역적)
- [ ] UserCredit diagnosis_balance 메서드 동작 (deduct/add/sufficient)
- [ ] Referral 모델 CRUD + 유효성 검증 (중복 방지)
- [ ] 기존 UserCredit.deduct!/add! 동작 변경 없음
- [ ] 테스트 통과
## 의존성
없음 (첫 번째 PR)
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
서브 티켓 (1/1 완료)
활동 로그
-
팀팀리드 상태 변경: 리뷰 → 완료
2026년 03월 26일 06:35:31
-
팀팀리드 팀 작업 완료 - [리퍼럴 PR1] DB 레이어
2026년 03월 26일 05:40:26
상세 보기
## 수정된 기능
- UserCredit에 diagnosis_balance 컬럼 추가 (진단 크레딧)
- CreditTransaction에 credit_type 컬럼 추가 (report/diagnosis 구분)
- User에 referral_code 컬럼 추가 (공유 URL용)
- Referral 모델 신규 생성 (리퍼럴 추적)## 테스트 결과
- 57 runs, 103 assertions, 0 failures (관련 테스트)
- 기존 테스트 영향 없음## 마이그레이션
- 4개 모두 가역적, rollback 검증 완료## 남은 이슈
- 기존 유저의 referral_code는 nil (필요 시 별도 마이그레이션으로 채울 수 있음) -
팀팀리드 상태 변경: 진행 중 → 리뷰
2026년 03월 26일 05:40:21
-
팀팀리드 위임: developer-1에게 '마이그레이션 + 모델 구현 (TDD)' 작업 배정
2026년 03월 26일 05:32:33
-
팀팀리드 작업 시작 - [리퍼럴 PR1] DB 레이어
2026년 03월 26일 05:32:16
상세 보기
## 작업 계획
- 목표: 진단 크레딧 + 리퍼럴 보상 시스템의 DB 기반 구축
- 접근 방식: 마이그레이션 4개 + 모델 변경/생성을 developer-1에게 위임, QA 검증 후 완료## 현재 상태
- 보드 현황: backlog 8 / todo 11 / in_progress 1 / review 4 / done 147
- 관련 기존 작업: UserCredit, CreditTransaction 모델 기존 존재 -
팀팀리드 티켓 클레임 완료
2026년 03월 26일 05:32:08
-
팀팀리드 기능 계획 수립 - 공유 리퍼럴 크레딧 시스템
2026년 03월 26일 05:28:42
상세 보기
## 기능 개요
- 카카오톡/링크 공유로 유입된 신규 회원이 강점 진단 완료 시 공유자에게 진단 크레딧 +1 보상
- 진단 크레딧으로 Big5/성장 마인드셋/행복도 진단 가능 (1크레딧=1검사)
- 진단 크레딧 개인 구매 가능 (3,000원/개)
- 리포트 크레딧(기존 18,000원)과 분리 운영## 분석 결과
- 영향 범위: UserCredit, CreditTransaction, User, DiagnosisSession, 결제 플로우
- 기존 패턴: ReportPurchaseService, CreditPurchaseService(워크스페이스), share_token 공유## 생성된 티켓
- [리퍼럴 PR1] DB 레이어 (priority: high)
- [리퍼럴 PR2] 비즈니스 로직 (priority: high)
- [리퍼럴 PR3] 컨트롤러 (priority: high)
- [리퍼럴 PR4] 진단 크레딧 구매 (priority: medium)
- [리퍼럴 PR5] 뷰/UI (priority: medium)## 핵심 설계 결정
- UserCredit에 diagnosis_balance 컬럼 추가 (별도 모델 X)
- Referral 모델 신규 생성 (referrer/referee 추적)
- 공유 URL에 ?ref=referral_code 파라미터
- 월 10개 보상 상한, 1인 1추천인 -
팀팀리드 상태 변경: 할 일 → 백로그
2026년 03월 26일 05:28:17