Admin APIAdmin Pending Participants API
Admin Pending Participants API
캠페인별 미처리 대상자(미서명/미제출/미등록) 조회 및 연락 이력·메모 관리 API
Admin Pending Participants API
캠페인별로 계약을 안 쓴 사람 / 제출(1차·2차·재제출)을 안 한 사람 / 최종 제출물을 안 낸 사람을 케이스별로 조회하고, 관리자가 연락 이력과 메모를 남길 수 있는 API입니다.
Base URL: /ai/admin/campaigns/{campaignNo}/pending-participants
여러 캠페인을 한 번에 훑으려면 Admin All Pending Participants API 를 사용하세요.
이 API는 관리자 권한이 필요합니다. actorId는 @AuthenticationPrincipal에서 서버가 자동 주입합니다.
엔드포인트 목록
대상자 조회
| 메서드 | 경로 | 설명 |
|---|---|---|
GET | / | 미처리 대상자 목록(페이지) |
GET | /summary | 케이스별 건수 집계 |
연락 이력 (CONTACT)
| 메서드 | 경로 | 설명 |
|---|---|---|
POST | /{applicationId}/contact-logs | 연락 이력 추가 |
GET | /{applicationId}/contact-logs | 연락 이력 목록 |
메모 (MEMO)
| 메서드 | 경로 | 설명 |
|---|---|---|
POST | /{applicationId}/memos | 메모 작성 |
GET | /{applicationId}/memos | 메모 목록 |
PATCH | /{applicationId}/memos/{memoId} | 메모 수정 (작성자만) |
DELETE | /{applicationId}/memos/{memoId} | 메모 삭제 (작성자만) |
공통 Enum
PendingCase
| 값 | 설명 |
|---|---|
CONTRACT_UNSIGNED | 계약 미체결 |
FIRST_REVIEW_NOT_SUBMITTED | 1차 제작물 미제출 |
SECOND_REVIEW_NOT_SUBMITTED | 2차 제작물 미제출 |
FIRST_RESUBMISSION_PENDING | 1차 재제출 필요 |
SECOND_RESUBMISSION_PENDING | 2차 재제출 필요 |
FINAL_NOT_SUBMITTED | 최종 제출물 미등록 (콘텐츠 링크/클린본/최종본) |
OverdueStatus (row 단위 계산)
| 값 | 조건 |
|---|---|
OVERDUE | deadline.toLocalDate() < today (경과) |
TODAY | deadline.toLocalDate() == today (오늘 마감) |
UPCOMING | deadline.toLocalDate() > today (예정) |
NO_DEADLINE | deadline == null |
ContactMethod (CONTACT 전용)
PHONE · SMS · EMAIL · KAKAO · OTHER
ContactFilter (쿼리 파라미터)
| 값 | 설명 |
|---|---|
ALL | 필터링 없음 (기본) |
CONTACTED | ContactLog(entryType=CONTACT) 1건 이상 존재하는 대상만 |
NOT_CONTACTED | 연락 이력이 없는 대상만 |
판정 로직 요약
| Case | 마감일 출처 | 조건 |
|---|---|---|
CONTRACT_UNSIGNED | CampaignSchedule(CONTRACT_CREATION).endDate | selectionStatus=SELECTED AND 최신 ApplicationContract.status != SIGNED |
FIRST_REVIEW_NOT_SUBMITTED | ApplicationSchedule 1차 제출 phase | review 없거나 미제출 아이템 존재 |
SECOND_REVIEW_NOT_SUBMITTED | ApplicationSchedule(CONTENT_SUBMISSION_DEADLINE) | 2회검수 + 1차 APPROVED + 2차 미제출 |
FIRST_RESUBMISSION_PENDING | ContentReview(round=1).feedbackDeadline | 1차 status=REJECTED |
SECOND_RESUBMISSION_PENDING | ContentReview(round=2).feedbackDeadline | 2차 status=REJECTED |
FINAL_NOT_SUBMITTED | ApplicationSchedule(UPLOAD_ALLOWED_DATE) | 2차 uploadApproved=true AND FinalSubmission 미제출 |
1차 제출 phase 분기: Collab.isDoubleReview=true → SCRIPT_SUBMISSION_DEADLINE, false → CONTENT_SUBMISSION_DEADLINE. 1차/2차 관련 모든 마감일은 ApplicationSchedule(개별 일정)에서만 조회합니다.
마감 경과 여부는 판정 조건이 아닙니다. 각 케이스 해당자를 모두 반환하고, row별 overdueStatus 로 운영자가 필터링합니다.