비고(플래그) 개요
크리에이터에 붙는 비고를 전 캠페인 공통과 개별 캠페인 전용으로 나눠 다룹니다.
비고(플래그) 개요
어드민 화면의 "비고"는 별도 메모 필드가 아니라 크리에이터에 붙는 태그(TB_INFLUENCE_FLAG)입니다.
추천·기업 선호 같은 프리셋과 자유 입력 텍스트 두 종류가 있습니다.
두 가지 범위
| 범위 | 값 | 의미 | 예시 |
|---|---|---|---|
GLOBAL | collab_no IS NULL | 크리에이터를 따라다닙니다. 어느 캠페인에서 봐도 표시됩니다. | 연락 두절, 기업 선호, 지인 출연 불가능 |
CAMPAIGN | collab_no = 캠페인번호 | 그 캠페인에서만 표시됩니다. | 7/17~19 여행 예정, 나레이션 없이 진행 희망 |
범위는 별도 컬럼이 아니라 collab_no 에서 파생되는 값입니다. 스키마 변경은 없습니다.
응답 필드
비고를 내려주는 모든 목록 API 는 아래 세 배열을 함께 싣습니다.
| 필드 | 내용 |
|---|---|
globalFlags | 전 캠페인 공통 비고 |
campaignFlags | 조회 기준 캠페인 전용 비고. 캠페인 컨텍스트가 없는 화면(유저풀·기캠페인 지원자)과 광고주 화면에서는 내려가지 않습니다. |
flags | 위 둘에 다른 캠페인 소속까지 합친 기존 필드 |
flags 는 범위 구분이 없는 예전 필드입니다. 화면이 두 칸으로 갈라지기 전까지 지금 보이던 비고가
사라지지 않도록 남겨 둔 것이며, 프런트가 globalFlags/campaignFlags 로 옮겨간 뒤 제거할 예정입니다.
새로 만드는 화면은 flags 를 쓰지 마세요.
각 비고 항목(InfluenceFlagDto)에는 다음이 실립니다.
| 필드 | 타입 | 설명 |
|---|---|---|
id | Long | 비고 ID. 단건 삭제에 씁니다. |
text | String | 표시 문구 |
category | String | POSITIVE / NEGATIVE / NEUTRAL |
color | String | HEX 색상 |
isPreset | Boolean | 프리셋 여부 |
presetCode | String | 프리셋 코드 (프리셋일 때) |
count | Integer | 같은 문구가 그 범위 안에서 몇 건인지 |
scope | String | GLOBAL / CAMPAIGN |
collabNo | Integer | 캠페인 번호. GLOBAL 이면 null |
source | String | ADMIN / AUTO_LABEL / BLACKLIST |
editable | Boolean | 어드민이 삭제할 수 있는지. source = ADMIN 일 때만 true |
editable 을 보고 삭제 버튼을 그리세요
AUTO_LABEL 은 자동 라벨링 배치가 규칙으로 붙이는 비고라 지워도 다음 배치에서 되살아납니다.
BLACKLIST 는 블랙리스트 전용 API 로만 해제해야 이력이 남습니다.
예전에는 삭제 요청을 받은 뒤에야 "자동 라벨이라 삭제되지 않았습니다" 라고 사후 통보했습니다.
이제 editable: false 로 미리 알려주므로 화면에서 삭제 버튼을 아예 그리지 않으면 됩니다.
관리 API
- 전 캠페인 공통 비고 —
/ai/admin/creator-flags - 캠페인 전용 비고 —
/ai/admin/campaign-flags - 자동 라벨링 동기화 —
/admin/flags/auto-label/sync
리스트 관리 화면의 벌크 저장(PATCH /ai/admin/dashboard/{campaignNo}/list)에도 flags[] 가 있지만,
이쪽은 해당 캠페인 소속 비고만 다룹니다. 전역 비고는 위 전용 API 를 쓰세요.
광고주 화면은 나누지 않습니다
기업 대시보드 진행표(GET /ai/progress-table/item/{id})는 범위를 나누지 않고 기존 flags 하나로만
내려갑니다. globalFlags/campaignFlags 는 나가지 않습니다.
비고 범위 분리는 어드민 화면의 요구사항입니다. 광고주에게는 전역·캠페인 구분이 의미가 없고 오히려 내부 운영 기준을 드러내므로 나누지 않습니다.