diff --git a/docs/20260929_크리에이터_선물하기/client-api-summary.md b/docs/20260929_크리에이터_선물하기/client-api-summary.md index c78f353e..2031c594 100644 --- a/docs/20260929_크리에이터_선물하기/client-api-summary.md +++ b/docs/20260929_크리에이터_선물하기/client-api-summary.md @@ -42,6 +42,8 @@ PRD에는 상세 API 계약, request/response 예시, 요구사항을 유지한 | 사용자 | Method | URI | 역할 | Request | Response | |---|---:|---|---|---|---| | 관리자 | GET | `/api/v2/admin/gift-categories` | 선물 카테고리 목록을 조회한다. | 없음 | `AdminGiftCategoryResponse[]` | +| 관리자 | GET | `/api/v2/admin/gifts` | 전체 선물함 목록을 조회하고 상태/신청번호/닉네임으로 검색한다. | query: `status`, `applicationNo`, `nickname`, `page`, `size` | `totalCount`, `items[]`, `page`, `size`, `hasNext` | +| 관리자 | GET | `/api/v2/admin/gifts/{applicationNo}` | 선물 상세와 발송인/수취인 개인정보, 상품/배송/상태 정보를 조회한다. | path: `applicationNo` | `applicationNo`, `senderInfo`, `recipientInfo`, `productInfo`, `inboundDeliveryInfo`, `status`, `statusName`, `availableActions` | | 관리자 | POST | `/api/v2/admin/gift-categories` | 선물 카테고리를 등록한다. | body: `classificationNumber`, `categoryCode`, `name`, `receiptCode`, `representativeItem`, `requiresDamageWaiver`, `isActive` | `categoryId`, `classificationNumber`, `categoryCode`, `name`, `receiptCode`, `representativeItem`, `requiresDamageWaiver`, `isActive` | | 관리자 | PUT | `/api/v2/admin/gift-categories/{categoryId}` | 선물 카테고리를 수정한다. | path: `categoryId`, body: `classificationNumber`, `categoryCode`, `name`, `receiptCode`, `representativeItem`, `requiresDamageWaiver`, `isActive` | `categoryId`, `classificationNumber`, `categoryCode`, `name`, `receiptCode`, `representativeItem`, `requiresDamageWaiver`, `isActive` | | 관리자 | DELETE | `/api/v2/admin/gift-categories/{categoryId}` | 선물 카테고리를 비활성화한다. | path: `categoryId` | `categoryId`, `classificationNumber`, `categoryCode`, `name`, `receiptCode`, `representativeItem`, `requiresDamageWaiver`, `isActive=false` | @@ -55,6 +57,9 @@ PRD에는 상세 API 계약, request/response 예시, 요구사항을 유지한 관리자 응답 DTO 요약: - `AdminGiftCategoryResponse`: `categoryId`, `classificationNumber`, `categoryCode`, `name`, `receiptCode`, `representativeItem`, `requiresDamageWaiver`, `isActive` +- `AdminGiftListResponse`: `totalCount`, `items`, `page`, `size`, `hasNext` +- `AdminGiftListItemResponse`: `applicationNo`, `senderNickname`, `recipientNickname`, `sizeCode`, `sizeName`, `categoryName`, `classificationNumber`, `courierCompanyName`, `trackingNumber`, `status`, `statusName`, `availableActions` +- `AdminGiftDetailResponse`: `applicationNo`, `senderInfo`, `recipientInfo`, `productInfo`, `inboundDeliveryInfo`, `status`, `statusName`, `availableActions` - `AdminGiftSizePriceResponse`: `sizeCode`, `name`, `basePriceCan`, `salePriceCan`, `isActive` - `AdminGiftOperationStatusResponse`: `applicationNo`, `status`, `statusName`, `occurredAt` @@ -282,6 +287,59 @@ data class AdminGiftCategoryResponse( val isActive: Boolean ) +data class AdminGiftListResponse( + val totalCount: Long, + val items: List, + val page: Int, + val size: Int, + val hasNext: Boolean +) + +data class AdminGiftListItemResponse( + val applicationNo: String, + val senderNickname: String, + val recipientNickname: String, + val sizeCode: String, + val sizeName: String, + val categoryName: String, + val classificationNumber: String, + val courierCompanyName: String?, + val trackingNumber: String?, + val status: String, + val statusName: String, + val availableActions: List +) + +data class AdminGiftDetailResponse( + val applicationNo: String, + val senderInfo: AdminGiftMemberInfoResponse, + val recipientInfo: AdminGiftMemberInfoResponse, + val productInfo: AdminGiftProductInfoResponse, + val inboundDeliveryInfo: AdminGiftInboundDeliveryInfoResponse, + val status: String, + val statusName: String, + val availableActions: List +) + +data class AdminGiftMemberInfoResponse( + val nickname: String, + val name: String, + val phoneNumber: String, + val address: String +) + +data class AdminGiftProductInfoResponse( + val sizeCode: String, + val sizeName: String, + val categoryName: String, + val classificationNumber: String +) + +data class AdminGiftInboundDeliveryInfoResponse( + val courierCompanyName: String?, + val trackingNumber: String? +) + data class AdminGiftSizePriceResponse( val sizeCode: String, val name: String,