From 375be9e9a9dd1273de9ed943af134a3b01aa8d8f Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 30 Sep 2026 18:41:13 +0900 Subject: [PATCH] =?UTF-8?q?docs(gift):=20=EA=B4=80=EB=A6=AC=EC=9E=90=20?= =?UTF-8?q?=EC=84=A0=EB=AC=BC=ED=95=A8=20=EC=A1=B0=ED=9A=8C=20=EA=B3=84?= =?UTF-8?q?=ED=9A=8D=EC=9D=84=20=EA=B8=B0=EB=A1=9D=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20260929_크리에이터_선물하기/plan-task.md | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/docs/20260929_크리에이터_선물하기/plan-task.md b/docs/20260929_크리에이터_선물하기/plan-task.md index 6b73c835..21c0a614 100644 --- a/docs/20260929_크리에이터_선물하기/plan-task.md +++ b/docs/20260929_크리에이터_선물하기/plan-task.md @@ -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 | 선행조건 | 병행 가능 | 차단 시 다음 행동 |