Main API캠페인 상세 조회 API
GET /ai/collab/{campaignNo}/full
캠페인 상세 + 가이드라인 조회 (SaaS)
캠페인 상세 + 가이드라인 조회 (SaaS)
캠페인의 상세 정보와 가이드라인을 함께 조회합니다.
인플루언서 권한(role=0)으로 로그인한 경우, 해당 캠페인에 대한 신청 여부(hasApplied)가 함께 반환됩니다.
| 항목 | 값 |
|---|---|
| 메서드 | GET |
| 경로 | /ai/collab/{campaignNo}/full |
| 인증 | 필요 |
요청
GET /ai/collab/{campaignNo}/fullPath Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
campaignNo | long | 예 | 캠페인 번호 |
응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "캠페인 상세 조회 완료",
"data": {
"campaign": {
"no": "1328",
"businessId": "business_001",
"thumbnailImagePath": "https://s3.../thumbnail.jpg",
"productImagePath": "https://s3.../product.jpg",
"productImagePaths": [
"https://s3.../product1.jpg",
"https://s3.../product2.jpg"
],
"snsType": "INSTAGRAM",
"contentFormat": "REEL",
"category": "BEAUTY",
"campaignType": "SEEDING",
"campaignSubStep": "CREATOR_RECRUIT",
"productName": "상품명",
"charge": "100000",
"currency": "KRW",
"recruitCount": "10",
"recruitmentStartDate": "2024-01-01 00:00:00",
"recruitmentEndDate": "2024-01-31 23:59:59",
"daysSinceEnded": null,
"campaignContractType": "STANDARD",
"campaignContractDescription": "계약 설명",
"campaignReportUrl": null,
"showPrice": true,
"listMode": "EXCLUDE",
"firstReviewTypes": ["DRAFT", "CAPTION"],
"secondReviewTypes": ["FINAL_CONTENT"],
"finalSubmissionTypes": ["INSIGHT"],
"secondaryUsageOption": "ALLOWED",
"deliveryType": "DELIVERY",
"isVisitRequired": null
},
"guideline": {
"collabNo": 1328,
"createdAt": "2024-01-15T10:00:00",
"updatedAt": "2024-01-16T15:30:00",
"basicInfo": {
"brandName": "브랜드명",
"productName": "상품명",
"productDescription": "상품 설명"
},
"contentDetailInfo": {
"concept": "콘텐츠 컨셉",
"mustInclude": ["필수 포함 사항"],
"prohibited": ["금지 사항"]
},
"marketingInfo": {
"hashtags": ["#해시태그1", "#해시태그2"],
"mentions": ["@계정1"]
},
"detailPageInfo": {
"brandLogo": {
"imageUrl": "https://s3.../logo.jpg"
},
"thumbnailUrl": "https://s3.../thumbnail.jpg",
"detailImageUrls": [
"https://s3.../detail1.jpg",
"https://s3.../detail2.jpg"
]
}
},
"hasGuideline": true,
"hasApplied": true,
"schedules": [
{
"scheduleId": 1,
"phase": "RECRUITMENT",
"startDate": "2024-01-01T00:00:00",
"endDate": "2024-01-07T23:59:59",
"completedDate": "2024-01-06T15:30:00",
"isCompleted": true,
"isDelayed": false,
"memo": null,
"createdAt": "2024-01-01T00:00:00",
"updatedAt": "2024-01-06T15:30:00"
}
]
}
}Response 스키마
CampaignWithGuidelineResponseDto
| 필드명 | 타입 | 설명 |
|---|---|---|
campaign | CampaignFullResponseDto | 캠페인 상세 정보 |
guideline | Map<String, Object> | 가이드라인 정보 (DynamoDB) |
hasGuideline | boolean | 가이드라인 존재 여부 |
hasApplied | Boolean | 인플루언서의 캠페인 신청 여부 (인플루언서 권한인 경우에만 반환, 그 외 null) |
schedules | CampaignScheduleResponseDto[] | 캠페인 일정 목록 |
CampaignScheduleResponseDto
| 필드명 | 타입 | 설명 |
|---|---|---|
scheduleId | long | 일정 ID |
phase | CampaignPhase | 캠페인 단계 |
startDate | datetime | 단계 시작일 |
endDate | datetime | 단계 종료일 |
completedDate | datetime | 실제 완료일 (nullable) |
isCompleted | boolean | 완료 여부 |
isDelayed | boolean | 지연 여부 |
memo | string | 메모 (nullable) |
createdAt | datetime | 생성일 |
updatedAt | datetime | 수정일 (nullable) |
CampaignFullResponseDto
| 필드명 | 타입 | 설명 |
|---|---|---|
no | string | 캠페인 번호 |
businessId | string | 기업 ID |
thumbnailImagePath | string | 썸네일 이미지 경로 |
productImagePath | string | 제품 이미지 경로 |
productImagePaths | string[] | 제품 이미지 경로 목록 |
snsType | SnsType | SNS 타입 |
contentFormat | SnsContentFormat | 콘텐츠 형식 |
category | CategoryType | 카테고리 |
campaignType | CampaignType | 캠페인 타입 |
campaignSubStep | CampaignSubStep | 캠페인 세부 단계 |
productName | string | 제품명 |
charge | string | 단가 |
currency | string | 통화 |
recruitCount | string | 모집 인원 |
recruitmentStartDate | datetime | 모집 시작일 |
recruitmentEndDate | datetime | 모집 종료일 |
daysSinceEnded | int | 종료 후 경과일 |
campaignContractType | string | 계약 타입 |
campaignContractDescription | string | 계약 설명 |
campaignReportUrl | string | 캠페인 리포트 URL |
showPrice | boolean | 가격 노출 여부 |
listMode | ListMode | 리스트 모드 |
firstReviewTypes | Set<SubmissionItemType> | 1차 검수 필수 제출물 |
secondReviewTypes | Set<SubmissionItemType> | 2차 검수 필수 제출물 |
finalSubmissionTypes | Set<FinalSubmissionType> | 최종 제출물 타입 |
secondaryUsageOption | string | 2차 활용 옵션 |
deliveryType | DeliveryType | 배송 타입 (DELIVERY, NO_DELIVERY, VISIT_REQUIRED) |
isVisitRequired | string | 방문/반납 여부 (RETURN_AFTER_REVIEW 또는 null) |