PR 7-3: 과제 제출 + 인증서 PDF 구현

ID: 99bb5328-82a3-460f-bc42-56d08058b0df

낮음 완료

과제 제출/리뷰 + 수료/자격 인증서 PDF 생성. TDD 기반.

## 담당 파일
- db/migrate/xxx_create_study_assignments.rb (신규)
- db/migrate/xxx_create_study_certificates.rb (신규)
- app/models/study/assignment.rb (신규)
- app/models/study/certificate.rb (신규)
- app/controllers/study/assignments_controller.rb (신규)
- app/controllers/study/certificates_controller.rb (신규)
- app/controllers/admin/study_assignments_controller.rb (신규 - Admin 과제 검토)
- app/services/study/certificate_generator.rb (신규)
- app/views/study/assignments/ (new, show)
- app/views/study/certificates/show.html.erb
- app/views/admin/study_assignments/ (index, show)
- config/routes.rb (edu subdomain + admin namespace)
- test/ (모델 2개, 컨트롤러 3개, 서비스 1개)

## 스키마
### study_assignments
- enrollment_id(FK), user_id(FK), course_id(FK)
- status: enum (pending/reviewed/approved/rejected)
- feedback:text
- has_one_attached :file (10MB)

### study_certificates
- user_id(FK), course_id(FK), enrollment_id(FK)
- certificate_type: enum (completion/qualification)
- certificate_number: string (unique, 9W-SC-YYYY-NNNNN)
- issued_at:datetime

## 비즈니스 로직
- 80% 수강 완료 → 수료 인증서 자동 발급
- 과제 승인 → 코치 자격 인증서
- PDF: 기존 PdfGenerator 패턴 참고 (Grover)
- 인증서 번호: 9W-SC-YYYY-NNNNN 형식 자동 생성

## 주의사항
- Study 모듈 table_name_prefix "study_", UUID PK
- routes.rb: edu subdomain + admin namespace 두 곳에 추가
- 다른 에이전트의 routes 영역 수정 금지

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: developer-4
생성일: 2026년 03월 11일 14:31

활동 로그

  • 팀리드 상태 변경: 리뷰 → 완료

    2026년 03월 11일 22:23:30

  • 팀리드 상태 변경: 할 일 → 리뷰

    2026년 03월 11일 15:15:36