Admin APIAdmin Business Pending Campaigns API
개요
기업 책임으로 진행이 막힌 캠페인을 admin이 한눈에 보는 통합 API
Business Pending Campaigns
"기업(사업자)이 액션을 안 해서 캠페인 진행이 막혀 있는 상태"의 캠페인을 단위별로 조회하는 admin 전용 API입니다. 모두 /ai/admin/pending 하위에 위치하며 3종으로 분리되어 있습니다.
| 엔드포인트 | 의미 | 정렬 기준 |
|---|---|---|
GET /payment-campaigns | 결제미완 (UNPAID / PAYMENT_PENDING) | 결제 요청 시점 ASC (없으면 등록일 ASC) |
GET /review-campaigns | 1·2차 검수 미진행 | 신청자별 가장 이른 검수 마감일 ASC |
GET /tracking-campaigns | 운송장 번호 미입력 (배송형만) | 캠페인 등록일 ASC |
공통 규칙
- 인증: Admin 권한 + Bearer JWT.
- 응답 wrapper:
ApiResponse(status/code/message/data). - 단위: 캠페인 1건 = 응답 row 1건. 동일 캠페인에 미처리 신청자가 여러 명이어도 캠페인 row 안의
pendingApplicants배열로 묶여 나옵니다. - 활성 캠페인 정의:
campaignNos미지정 시CAMPAIGN_COMPLETED단계는 제외됩니다. (각 엔드포인트별로 추가 사전 필터가 있을 수 있음 — 운송장은 배송형만, 등.)
케이스 분류 (개념 라벨)
본 API군이 표현하는 "기업 책임 미처리"는 다음 5종으로 분류됩니다. 이 분류는 문서상의 라벨이며 별도 enum 으로 노출되지 않습니다.
| Case | 판정 조건 | 카운트 단위 |
|---|---|---|
PAYMENT_UNPAID | CampaignPaymentVerification.status = UNPAID | 캠페인 |
PAYMENT_PENDING | CampaignPaymentVerification.status = PAYMENT_PENDING | 캠페인 |
REVIEW_1ST_NOT_DONE | SELECTED 신청자 중, 1차 ContentReview 제출 완료 + status=PENDING | application |
REVIEW_2ND_NOT_DONE | 2회검수 캠페인만. round=2 ContentReview 제출 완료 + status=PENDING | application |
TRACKING_NUMBER_NOT_ENTERED | Collab.deliveryType = DELIVERY && ApplicationDelivery.trackingNumber 비어있음 | application |
1회검수 컨벤션
1회검수 캠페인은 ContentReview 가 reviewRound=2 단일 행으로 저장됩니다. 즉 1회검수일 때 REVIEW_2ND_NOT_DONE 은 발생하지 않으며 REVIEW_1ST_NOT_DONE 만 발생합니다.
신청자 drill-down 행 (pendingApplicants[])
검수/운송장 응답에서 공통으로 사용되는 신청자 1건 단위 구조입니다.
| 필드 | 타입 | 채워지는 경우 |
|---|---|---|
applicationId | Long | 항상 |
influenceId | Integer | 항상 |
nickname | string | 항상 |
round | Integer | 검수 응답에서만 (1 또는 2) |
deadline | LocalDateTime | 검수 응답에서만 |
deliveryStatus | DeliveryStatus | 운송장 응답에서만 |