Skip to content

캠페인 라이프사이클

캠페인(Collab)은 campaignSubStep 필드로 현재 단계를 관리합니다.

캠페인 도메인은 레거시SaaS 두 가지 구조가 공존합니다. Collab.isLegacy 필드로 구분됩니다.

구분레거시SaaS (현재)
핵심 엔티티ProgressTableCampaignApplication
컨트롤러ProgressTableController (/ai/progress-table)InfluenceSaasController (/ai/influence) + CollabController (/ai/collab)
지원 관리ProgressTable에 직접 크리에이터 정보 저장CampaignApplication → ApplicationContract, ApplicationMatching, ApplicationDelivery
상태 추적matchingStatus, deliveryStatus 등 단일 레코드selectionStatus, phase, subStep 으로 세분화
계약없음ApplicationContract (전자 계약서, 서명, PDF)
단가 협상bidPrice 필드 하나PriceNegotiation 이력 관리 (1:N)
배송trackingNumber 필드ApplicationDelivery (별도 엔티티, 상태 머신)
검수aiCheck, personCheck 필드phase 기반 (FIRST_REVIEW → SECOND_REVIEW) + 검수 타입(firstReviewTypes, secondReviewTypes)

비즈니스가 새 캠페인을 생성합니다.

항목설명
주체비즈니스 (ROLE_BUSINESS)
입력캠페인 기본 정보, 상품 정보, 모집 조건
저장TB_COLLAB 레코드 생성
다음 조건결제 완료

2. 캠페인 결제 → 가이드라인 (CAMPAIGN_GUIDELINE)

Section titled “2. 캠페인 결제 → 가이드라인 (CAMPAIGN_GUIDELINE)”

크레딧 차감 또는 CandyPay 결제 후 가이드라인 작성 단계로 진입합니다.

  • 크레딧 결제: CandyPaymentService.payCollabWithCredit()Business.remainCredit 차감
  • CandyPay 결제: CandyPaymentService.confirmCollabPayment() → 외부 API 호출 → CampaignPayment 생성

3. 크리에이터 모집 (CREATOR_RECRUIT)

Section titled “3. 크리에이터 모집 (CREATOR_RECRUIT)”

크리에이터가 캠페인에 지원합니다.

컨트롤러: InfluenceSaasController (POST /ai/influence/campaign/application)

  1. 크리에이터가 캠페인 상세 페이지에서 지원
  2. CampaignApplication 레코드 생성 (sourceType = SELF_APPLIED)
  3. selectionStatus = WAITING으로 초기화
  4. AI 매칭 시 ApplicationMatching 생성 (코사인 유사도 점수, 추천 사유)
  5. 관리자 추가 시 sourceType = ADMIN_ADDED

지원 시 생성되는 데이터:

  • CampaignApplication: 지원 기본 정보
  • ApplicationMatching: AI 매칭 점수 (선택적)
  • ApplicationContract: 계약서 (DRAFT 상태)

4. 크리에이터 선발 (CREATOR_SELECT)

Section titled “4. 크리에이터 선발 (CREATOR_SELECT)”

비즈니스가 지원자 중 크리에이터를 선발합니다.

CampaignApplication.selectionStatus 상태 전이:

선발 시 ApplicationContract 발송 → 크리에이터 계약서 서명 → phase = APPLICATION_CONTRACT

5. 콘텐츠 제작 및 검수 (CONTENT_CREATE → CONTENT_SUBMIT)

Section titled “5. 콘텐츠 제작 및 검수 (CONTENT_CREATE → CONTENT_SUBMIT)”

크리에이터가 콘텐츠를 제작하고, AI 및 담당자가 검수합니다.

컨트롤러: InfluenceSaasController (POST /ai/influence/campaigns/applications/{applicationId}/content)

캠페인의 firstReviewTypes, secondReviewTypes 설정에 따라 검수 단계가 결정됩니다.

검수 처리: ProgressTableController (PUT /ai/progress-table/reviews/bulk)

  • 1차/2차 검수 승인 또는 반려를 벌크로 처리

컨트롤러: ProgressTableController

  • PUT /ai/progress-table/application/delivery/tracking — 운송장 번호 저장
  • PUT /ai/progress-table/application/delivery/status/bulk — 배송 상태 벌크 변경

ApplicationDelivery.deliveryStatus 상태:

상태설명
BEFORE_DELIVERY배송 전
SHIPPING배송 중
DELIVERED배송 완료

캠페인 완료 후 크리에이터에게 대금을 지급합니다.

  • settlementReady 플래그로 정산 준비 여부 관리
  • SettlementExportService: Google Sheets 내보내기
  • SettlementMailScheduler: 정산 메일 자동 발송
기능SaaS 컨트롤러레거시 컨트롤러
캠페인 생성/조회CollabController (/ai/collab)CollabController (동일)
크리에이터 지원InfluenceSaasController (/ai/influence/campaign/application)CollabController (/ai/collab/application/insert)
크리에이터 선발/매칭ProgressTableController (벌크 상태 변경)ProgressTableController (동일)
콘텐츠 업로드InfluenceSaasController (/ai/influence/campaigns/applications/{id}/content)-
검수 (1차/2차)ProgressTableController (/ai/progress-table/reviews/bulk)ProgressTableController (aiCheck, personCheck)
계약서 관리InfluenceSaasController (계약 열람/서명)없음
단가 협상InfluenceSaasController (/ai/influence/price-negotiations/{id}/respond)없음
배송 관리ProgressTableController (ApplicationDelivery 기반)ProgressTableController (ProgressTable 필드)
마이페이지InfluenceSaasController (/ai/influence/mypage)-