docs(gift): 관리자 선물함 조회 계획을 기록한다

This commit is contained in:
2026-09-30 18:41:13 +09:00
parent afe92829dc
commit 375be9e9a9
@@ -8,7 +8,7 @@
| 작성일 | 2026-09-29 |
| 요구사항 기준 | `docs/20260929_크리에이터_선물하기/prd.md` |
| API 기준 | `docs/20260929_크리에이터_선물하기/prd.md`의 `8. API 계약` |
| 현재 Phase | Phase 9 완료 |
| 현재 Phase | Phase 10 완료 |
| 현재 활성 Goal | 완료 |
## 목표
@@ -40,6 +40,7 @@
| 7 | 완료 | `3/3` | 완료 | 없음 |
| 8 | 완료 | `1/1` | 완료 | 없음 |
| 9 | 완료 | `3/3` | 완료 | 없음 |
| 10 | 완료 | `3/3` | 완료 | 관리자 선물함 목록/상세 API 추가 |
- 동시에 하나의 미완료 goal만 운용한다.
- 구현 중 요구사항이 바뀌면 이 문서의 체크박스와 범위를 먼저 갱신한 뒤 코드를 수정한다.
@@ -708,6 +709,55 @@ git diff --check
**결과:** 완료. 2026-09-30 기준 Phase 9 Gate 명령 3개 모두 성공.
## Phase 10: 관리자 선물함 목록과 상세 조회
**Phase 결과:** 관리자가 전체 선물 신청을 목록/상세로 조회하고, 현재 상태에서 가능한 운영 액션을 확인할 수 있다.
**선행조건:** Phase 9 완료, 사용자 확정 요구사항 반영.
**Phase 완료 조건:** `P10-T1`~`P10-T3`와 `P10-GATE` 완료, 검증 기록 누적.
### 구현 항목
#### Task 10.1 문서 계약 갱신
**Goal 실행 `P10-T1`:** PRD, 구현 계획, 클라이언트 요약에 관리자 선물함 목록/상세 API 계약을 추가한다.
- **Files:** Modify `prd.md`, `plan-task.md`, `client-api-summary.md`.
- [x] **RED:** 기존 관리자 API 문서에 전체 선물함 목록/상세 조회 계약이 없음을 확인한다.
- [x] **GREEN:** `GET /api/v2/admin/gifts`, `GET /api/v2/admin/gifts/{applicationNo}`와 `availableActions` 정책을 문서화한다.
- [x] **검증:** 세 문서가 같은 필터, 응답 필드, 개인정보 미입력 표현을 설명하는지 대조한다.
#### Task 10.2 관리자 선물함 query service 구현
**Goal 실행 `P10-T2`:** 관리자 선물함 목록/상세 조회 service와 repository query를 구현한다.
- **Files:** Create `GiftAdminQueryService.kt`; Modify `GiftRepository.kt`, `GiftDeliveryRepository.kt`.
- **Tests:** Create `GiftAdminQueryServiceTest.kt`.
- [x] **RED:** 필터, 페이징, 목록/상세 필드, 수취인 배송지 미입력 빈 문자열, 상태별 `availableActions` 테스트를 작성하고 실패를 확인한다.
- [x] **GREEN:** 조회 service와 repository query를 최소 구현한다.
- [x] **검증:** `GiftAdminQueryServiceTest`를 실행한다.
#### Task 10.3 관리자 선물함 HTTP API 구현
**Goal 실행 `P10-T3`:** 관리자 controller와 response DTO에 목록/상세 endpoint를 연결한다.
- **Files:** Modify `AdminGiftController.kt`, `AdminGiftResponse.kt`.
- **Tests:** Modify `AdminGiftControllerTest.kt`.
- [x] **RED:** MockMvc로 목록/상세 JSON 계약과 권한/오류를 테스트하고 실패를 확인한다.
- [x] **GREEN:** 두 GET endpoint와 response DTO를 최소 구현한다.
- [x] **검증:** `AdminGiftControllerTest`, `GiftAdminQueryServiceTest`를 실행한다.
### Phase 10 Gate
```bash
./gradlew test --tests "kr.co.vividnext.sodalive.v2.gift.*" --tests "kr.co.vividnext.sodalive.v2.api.gift.*" --tests "kr.co.vividnext.sodalive.v2.api.admin.gift.*"
./gradlew ktlintCheck
git diff --check
```
**결과:** 완료. 2026-09-30 기준 focused 테스트, `ktlintCheck`, `git diff --check` 성공.
## 실행 순서와 의존성
| 순서 | Goal | 선행조건 | 병행 가능 | 차단 시 다음 행동 |