-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
📝 작업 개요
이번 이슈에서 구현하거나 수정할 내용을 간단히 요약해주세요.
- 문제 풀이 상태 업데이트 API 개발 (오늘의 추천 문제 일괄 업데이트)
- 문제 풀이 상태 조회 API 개발 (개인/그룹 조회)
- 특정 문제의 모든 멤버 풀이 상태 조회 API 개발
- 문제 풀이 통계 조회 API 개발 (개인/그룹/멤버별)
- 문제 풀이 상태 모델 및 서비스 레이어 구현
🎯 세부 작업 내용
구체적으로 어떤 작업을 수행해야 하는지 작성해주세요.
-
ProblemSolvingStatus모델 생성 및 마이그레이션 -
ProblemSolvingStatusService서비스 클래스 구현 (상태 업데이트, 조회, 통계) - Serializers 구현 (Request/Response/Query)
- Views 구현 (4개 API 엔드포인트)
- URL 패턴 추가
✅ 완료 조건 (Acceptance Criteria)
이 이슈가 닫히기 위해 충족해야 하는 조건을 명확히 작성해주세요.
- 모든 API 엔드포인트가 정상 동작한다.
- 문제 풀이 상태 업데이트 시 5분 쿨다운이 정상 작동한다.
- 개인 조회(view=me)와 그룹 조회(view=group)가 모두 정상 작동한다.
- Note status가 정확히 계산되어 응답에 포함된다.
- 통계 조회 API가 me/group/member 모든 view에서 정상 작동한다.
- 모든 API 응답 형식이 스펙과 일치한다.
- 권한 체크가 정상 작동한다 (스터디 멤버만 접근 가능).
- 관련 테스트가 통과한다.
- API 문서가 업데이트되었다.
💡 참고 사항 (선택)
참고 문서, Figma 링크, API 스펙 문서 등이 있다면 추가해주세요.
API 스펙
1. 문제 풀이 상태 업데이트
- POST
/studies/<study_id>/assignments/update/ - Request Body:
{ "status": "completed" | "in_progress" | "not_attempted" } - 쿨다운: 같은 날짜에 대해 5분마다 1회만 업데이트 가능
2. 문제 풀이 상태 조회
- GET
/studies/<study_id>/assignments/status/ - Query Parameters:
date: YYYY-MM-DD (선택, 기본값: 오늘)view:me|group(선택, 기본값:me)
3. 특정 문제의 모든 멤버 풀이 상태 조회
- GET
/studies/<study_id>/problems/<problem_id>/status/members/
4. 통계 조회
- GET
/studies/<study_id>/statistics/ - Query Parameters:
view:me|group|member(선택, 기본값:me)member_id: 멤버 ID (view=member일 때 필수)start_date: 시작 날짜 (YYYY-MM-DD, 선택)end_date: 종료 날짜 (YYYY-MM-DD, 선택)
상태 정의
- Problem Status:
not_attempted|in_progress|completed - Note Status:
not_completed|completed
응답 필드
- 각 응답에
member_id,member_email,username(boj_username) 포함 problem_status,note_status모두 포함- 통계 응답에
problem_status_summary,note_status_summary포함
Metadata
Metadata
Assignees
Labels
No labels