가이드라인 저장 제약
기업 주도 플로우에서 기업 계정의 완성본 저장 허용 여부는 guideline_step_modifi 플래그로 갈립니다.
가이드라인 저장 제약
기업 주도(BUSINESS_DIRECT) 캠페인에서 기업 계정이 가이드라인 완성본을 저장할 수 있는지는
guideline_step_modifi 플래그로 갈립니다.
| 플래그 | 정책 | 기업 계정의 완성본 저장(isFirst=false) |
|---|---|---|
ON | 신규 | 허용 — 저장하는 순간 모집이 시작됩니다 |
OFF | 이전 | 차단 (403 BD_004) — 관리자만 완성 처리 |
아래 제약은 플래그가 OFF 일 때의 동작입니다.
가이드라인 v4 저장 API 자체는 그대로이고, 저장 플래그에 제약이 추가된 것입니다.
왜 제약이 있나
가이드라인 완성본 저장은 곧 모집 시작입니다. 저장 시점에 다음이 한꺼번에 일어납니다.
guidelineStatus→COMPLETEDcampaignSubStep→CREATOR_RECRUIT(모집 시작)- 모집 마감일 확정 + 이후 전체 일정 산정 (카운트다운 시작)
기업 주도 플로우는 가이드라인 작성 뒤에 결제와 관리자 검토가 남아 있으므로, 기업이 완성본을 저장할 수 있으면 결제 전에 모집이 시작되고 모집 기간이 대기 중에 소진됩니다. 이를 막기 위한 제약입니다.
적용 대상
| 캠페인 | 기업 계정 | 관리자 계정 |
|---|---|---|
flowType = BUSINESS_DIRECT | 초안·임시저장만 가능 | 제약 없음 (완성본 저장 = 모집 시작) |
flowType = STANDARD 또는 null | 제약 없음 (기존과 동일) | 제약 없음 |
기존 플로우 캠페인의 동작은 전혀 바뀌지 않았습니다. 기업이 완성본을 저장하면 종전대로 즉시 모집이 시작됩니다.
요청 플래그별 동작
가이드라인 v4 저장 API 의 isFirst · isModify 조합에 따라 아래와 같이 처리됩니다.
isModify | isFirst | 저장 결과 | 기업 계정 (BUSINESS_DIRECT) |
|---|---|---|---|
true | – | 임시저장 (상태 변경 없음) | 허용 |
false | true | 초안 저장 → DRAFT | 허용 |
false | false | 완성본 저장 → COMPLETED + 모집 시작 | 403 차단 |
에러 응답
{
"status": 403,
"code": "BD_004",
"message": "가이드라인 완성은 관리자 검토 후 진행됩니다. 초안으로 저장해주세요.",
"data": null
}프런트 처리
기업 화면에서는 "완성" 버튼을 노출하지 않는 것이 원칙입니다. 아래는 서버 측 최종 방어선이며, 정상 흐름에서는 이 오류가 발생하지 않아야 합니다.
// 기업 화면: BUSINESS_DIRECT 이면 완성 버튼 숨김
const showCompleteButton = campaign.flowType !== 'BUSINESS_DIRECT';
// 저장 시 항상 초안으로
await saveGuidelineV4(campaignNo, { isFirst: true, isModify: false, ...body });관리자 화면에서는 기존과 동일하게 완성본 저장이 가능하며, 그 저장이 곧 모집 시작입니다. 관리자에게는 이 버튼이 "모집 시작" 에 해당한다는 점이 화면 문구로 드러나는 것이 좋습니다.
관리자가 완성본을 저장하기 전에 수수료와 모집 영업일수가 확정되어 있어야 합니다.
모집 일정은 완성본 저장 시점에 recruitmentDays 를 기준으로 산정되며,
이후 되돌리기 어렵습니다.