Glowb Dev Docs
Admin APIAdmin Dashboard API

POST /ai/admin/dashboard/{campaignNo}/recommend-reasons/regenerate

추천사 재생성 (리스트 관리)

추천사 재생성 (리스트 관리)

선택한 신청자들의 추천사만 AI로 재생성합니다. 적합도 점수(matchScore)는 변경하지 않습니다.

  • customPrompt를 입력하면 해당 지시사항을 최우선으로 반영하여 추천사를 다시 생성합니다. 비워두면 일반 재생성과 동일하게 동작합니다.
  • 추천사가 생성·변경될 때마다 TB_RECOMMEND_REASON_HISTORY에 이전값/새값/변경유형/변경자(어드민 계정)/프롬프트가 이력으로 남습니다.
  • 동기 처리입니다. 선택 인원수 × AI 생성 시간(수 초)만큼 응답이 걸리므로, 프론트에서는 한 번에 소수 인원(≤10명 권장)으로 호출하고 로딩 상태를 표시해야 합니다.

캠페인의 이미지 분석(product_details)이 없는 경우 AI 서버가 재생성을 거부합니다(422). 이 경우 POST /ai/report/campaign/{campaignNo}/analyze-images로 이미지 분석을 먼저 수행해야 합니다.

HTTP 요청

POST /ai/admin/dashboard/{campaignNo}/recommend-reasons/regenerate
Authorization: Bearer {access_token}
Content-Type: application/json

Path Parameters

파라미터타입필수설명
campaignNolong캠페인 번호

Request Body

필드타입필수설명
applicationIdsList<Long>재생성할 신청 ID 목록 (리스트 관리 조회 응답의 applicationId)
customPromptString아니오추천사 생성 시 우선 반영할 추가 지시사항 (최대 1,000자)

요청 예시

{
  "applicationIds": [35, 42],
  "customPrompt": "제품 기능 설명보다 브랜드 무드와 감성적인 일상 연출 가능성을 중심으로 작성해 주세요."
}

응답

성공 응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "2명 추천사 재생성 요청 완료",
  "data": {
    "requestedCount": 2,
    "skippedNames": []
  }
}

SNS 링크가 없어 재생성할 수 없는 신청자는 skippedNames에 이름이 담기고 message에도 표기됩니다. 처리 중 에러가 난 신청자는 "이름(에러:사유)" 형식으로 담깁니다.

{
  "status": 200,
  "code": null,
  "message": "1명 추천사 재생성 요청 완료 / SNS 링크 없음: 홍길동",
  "data": {
    "requestedCount": 1,
    "skippedNames": ["홍길동"]
  }
}

에러 응답

상태 코드설명
400applicationIds가 비어 있음
401인증 실패 (ADMIN 권한 필요)

API 테스트

On this page