Admin APIAdmin Campaign API
PATCH /ai/admin/campaigns/final-submission/{applicationId}/upload-date
관리자 업로드 일정 변경 (포스팅 허용 메일 발송 선택)
업로드 일정 변경 (관리자용)
관리자가 크리에이터의 업로드 일정(FinalSubmission.uploadDateType / uploadDate / candidateDates)을 변경합니다. 기업이 고르는 3개 옵션을 그대로 사용하고, 크리에이터별 업로드 허용일(UPLOAD_ALLOWED_DATE) 일정도 함께 재산정합니다. sendEmail 쿼리 파라미터로 크리에이터 포스팅 허용 메일을 보낼지 정합니다.
기업용 업로드일 선택(POST /ai/business/contents/upload-date)과 같은 옵션을 쓰지만, 관리자 후보일 안내 메일은 보내지 않고 이전 옵션의 잔여값(후보일·업로드 예정일)을 정리한다는 점이 다릅니다. 최종 제출이 끝난 건도 변경할 수 있습니다.
HTTP 요청
PATCH /ai/admin/campaigns/final-submission/{applicationId}/upload-date?sendEmail=true
Authorization: Bearer {access_token}
Content-Type: application/jsonPath Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
applicationId | long | 예 | 신청(CampaignApplication) ID |
Query Parameters
| 파라미터 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
sendEmail | boolean | 아니오 | true | 크리에이터 포스팅 허용 메일 발송 여부 |
Request Body
{
"uploadDateType": "OPTIMAL",
"uploadDate": "2026-10-10T00:00:00",
"candidateDates": null
}| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
uploadDateType | OPTIMAL | ASAP | CANDIDATE | 예 | 업로드 일정 옵션 |
uploadDate | LocalDateTime | 아니오 | 업로드 예정일. OPTIMAL 생략 시 현재 + 3일, ASAP 생략 시 현재 |
candidateDates | LocalDateTime[] | CANDIDATE면 예 | 후보 날짜 목록. 날짜(yyyy-MM-dd)만 저장됩니다 |
옵션별 저장 규칙
| 옵션 | 의미 | 저장 | 업로드 마감(크리에이터 노출) | 메일 모드 |
|---|---|---|---|---|
OPTIMAL | 3일 이내 최적 날짜 | uploadDate 저장, candidateDates 비움 | 허용일 + 2일 | auto |
ASAP | 최대한 빨리 | uploadDate 저장, candidateDates는 보낸 값(없으면 비움) | 허용일 + 2일 | asap |
CANDIDATE | 업로드일 선택 | candidateDates 저장, uploadDate는 보낸 값(없으면 비움) | 가장 늦은 후보일 | custom |
동작
- 신청 건의
FinalSubmission조회 (없으면 새로 생성) - 옵션별 규칙대로 업로드 일정 저장
- 업로드 허용일(
UPLOAD_ALLOWED_DATE) 일정 재산정 - 변경 전·후 값(타입·업로드일·후보일)과 관리자 ID, 제출 여부를 로그로 남김
sendEmail=true면 크리에이터 포스팅 허용 메일 발송
포스팅 허용 메일은 영상 검수가 승인(APPROVED)된 건에만 나갑니다. 미승인 건은 sendEmail=true여도 이번에는 발송하지 않고, 이후 영상 검수가 승인되는 시점에 자동으로 발송됩니다. sendEmail=false로 바꿔 둔 경우에도 승인 시점 자동 발송은 그대로 일어납니다.
함께 바뀌는 일정 / 바뀌지 않는 일정
조회 시점에 자동으로 따라 바뀌는 값
- 크리에이터 캠페인 카드의 업로드 마감·D-day
- 진행 타임라인의
uploadDeadline/finalSubmissionDeadline - 어드민 참여자 대기 목록의 "최종 미제출" 마감
- 최종 제출 지연 라벨 판정
- 아직 최종 제출하지 않은 크리에이터의 정산 메일 예정일(
settlementMailScheduledDate응답값)
바뀌지 않는 값
- 신청자 정산 마감(
SETTLEMENT_DEADLINE): 업로드 일정이 아니라 실제 최종 제출 시점 기준 - 캠페인 정산 메일 예정일(
Collab.settlementMailScheduledDate): 캠페인 첫 최종 제출 시 한 번 고정 - 캠페인 단위
UPLOAD_APPROVAL일정: 캠페인 일정 수정으로 별도 변경
재요청이 걸린 건은 어드민 대기 목록 마감이 최종제출물 재제출 마감(FINAL_RESUBMISSION_DEADLINE) 기준이라, 업로드 일정을 바꿔도 그 화면의 마감은 움직이지 않습니다.
응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "업로드 일정이 변경되었습니다.",
"data": {
"finalSubmissionId": 1,
"applicationId": 123,
"uploadDateType": "OPTIMAL",
"uploadDate": "2026-10-10T00:00:00",
"message": "업로드 일정이 변경되었습니다."
}
}에러 응답
| 상태 코드 | 설명 |
|---|---|
404 | 신청 건 없음 / uploadDateType 누락 / CANDIDATE인데 후보 날짜 없음 (모두 INVALID_DATA 코드로 응답) |
401 | 인증 실패 |