Glowb Dev Docs
SaaS API캠페인 제공 옵션 (V4)

크리에이터 옵션 선택 저장

크리에이터가 자신의 신청 건에 캠페인 제공 옵션 선택을 저장합니다 (PROPOSAL 상태에서만 허용).

크리에이터 옵션 선택 저장

크리에이터가 PROPOSAL(제안) 상태에서 색상/사이즈 등 옵션을 선택해 저장한다. 저장 즉시 광고주/관리자 대시보드의 selectedOptions 에 반영된다.

HTTP 요청

PUT /ai/application/{applicationId}/provided-options
Authorization: Bearer {access_token}
Content-Type: application/json

Path Parameters

파라미터타입필수설명
applicationIdLong신청 ID (TB_CAMPAIGN_APPLICATION.id)

Request Body

{
  "choiceIds": [11, 23]
}
필드타입필수설명
choiceIdsLong[]선택한 choice id 목록. 그룹 무관 flat 리스트로 보냄. 중복은 자동 제거됨. 빈 배열이면 본인 선택을 전부 삭제

권한 / 상태 게이트

  • 비-관리자: 본인의 신청 건만 저장 가능 (influence.member.id == userDetails.username). 아니면 UNAUTHORIZED_ACCESS (403)
  • 관리자: 모든 신청 건 저장 가능
  • selectionStatusPROPOSAL 이 아니면 PROVIDED_OPTION_INVALID_STATE (400) — 다른 상태(WAITING/SELECTED/계약완료 등) 에서는 변경 불가

검증

  • 모든 choiceIds 가 해당 캠페인의 활성(soft-delete 제외) choice 인지 확인. 하나라도 다른 캠페인 / 비활성이면 PROVIDED_OPTION_CHOICE_INVALID (400)
  • 그룹의 selectionType == SINGLE 일 때 같은 옵션 그룹에서 2개 이상 선택하면 PROVIDED_OPTION_CHOICE_INVALID (400)

저장 동작

  • 기존 본인 선택(TB_APPLICATION_PROVIDED_OPTION_SELECTION 의 해당 application 행) 을 전부 삭제 후 재기록 (선택 변경 빈도가 낮고 단순함이 우선)

광고주가 가이드라인을 재저장해 옵션 정의가 바뀌어도, PROPOSAL 신청자가 1건이라도 있으면 sync 단계에서 거부된다. 즉, 크리에이터가 선택한 choice 의 의미가 바뀌는 상황은 발생하지 않는다.

응답

성공 응답 (200 OK)

저장 후의 현재 선택 상태를 반환.

{
  "status": 200,
  "code": null,
  "message": "선택 저장 완료",
  "data": {
    "applicationId": 9001,
    "groups": [
      {
        "optionId": 1,
        "title": "색상",
        "selected": [
          { "choiceId": 11, "value": "아이보리" }
        ]
      },
      {
        "optionId": 2,
        "title": "사이즈",
        "selected": [
          { "choiceId": 23, "value": "M" }
        ]
      }
    ]
  }
}

에러 응답

상태 코드코드설명
400PROVIDED_OPTION_INVALID_STATEselectionStatus 가 PROPOSAL 이 아님
400PROVIDED_OPTION_CHOICE_INVALIDchoice 가 캠페인 소속이 아니거나, SINGLE 그룹에 2개 이상 선택
401-인증 실패
403UNAUTHORIZED_ACCESS본인 신청 아님 + 관리자도 아님
404APPLICATION_NOT_FOUND존재하지 않는 신청

API 테스트

On this page