Glowb Dev Docs
Admin API블랙리스트

블랙리스트 개요

계약 후 드롭·취소한 크리에이터를 모든 후보 목록에서 제외하는 미노출 태그입니다.

블랙리스트 (미노출 태그)

계약까지 진행하고 드롭하거나 일방 취소한 크리에이터를 기업·관리자 양쪽 후보 목록에서 전부 제외하는 태그입니다.

기존 플래그(SCHEDULE_VIOLATION, LOW_QUALITY 등)는 화면에 표시되는 라벨일 뿐 노출을 막지 않습니다. 블랙리스트는 라벨이 아니라 접근 제어입니다.

관리자 화면에서도 보이지 않습니다. 관리자 목록에 뜨면 결국 진행표에 올라가고 기업 화면까지 흘러가기 때문입니다. 확인·해제는 이 문서의 목록 조회 API가 유일한 경로입니다.

사용 흐름

  1. 등록 후보 검색 — 이름·이메일·전화번호·인스타 링크로 대상자를 찾습니다
  2. 등록 — 찾은 influenceNo 로 차단합니다
  3. 목록 조회 — 등록된 대상자를 확인합니다 (유일한 확인 경로)
  4. 해제 — 필요 시 원복합니다

크리에이터에게 보이는 것

아무것도 바뀌지 않습니다. 지원은 정상 접수되고 선정 상태도 WAITING 그대로이며 알림도 나가지 않습니다.

자동 미선정 처리를 하면 미선정 알림이 반복되어 본인이 패턴을 눈치채고 문의·우회가입으로 이어지기 때문에, 상태를 건드리지 않는 쪽을 택했습니다.

비노출 범위

화면동작
기업 진행표·지원자 목록선정 전 지원 건 제거
어드민 리스트 관리(선정 화면)선정 전 지원 건 제거
어드민 캠페인 신청자 조회선정 전 지원 건 제거
어드민 유저풀 검색상태 무관 무조건 제외
어드민 교차캠페인 지원자 불러오기상태 무관 무조건 제외

유저풀과 교차캠페인은 "다른 데서 후보를 끌어와 이 캠페인에 넣는" 섭외 화면입니다. 다른 캠페인에서 선정됐던 이력이 있어도 후보로 뜨면 안 되므로 상태와 무관하게 제외합니다.

이미 선정·제안된 건은 목록에 남습니다. 드롭한 건의 정산·위약금·CS 처리가 막히면 안 되기 때문입니다. 차단되는 것은 앞으로의 신규 선정뿐입니다.

쓰기 차단

목록에서 빠져도 applicationIdinfluenceNo를 직접 넘기면 API를 부를 수 있으므로, 서버에서 한 번 더 막습니다.

판정 규칙

바꾸려는 상태가 SELECTED·PROPOSAL이고, 현재 상태가 아직 SELECTED·PROPOSAL이 아니며, 해당 인플루언서가 블랙리스트이면 차단합니다.

가운데 조건이 핵심입니다. 이게 없으면 드롭한 사람의 계약 서명·정산·상태 정정까지 막혀 운영이 멈춥니다. 막는 것은 신규 선정뿐입니다.

차단되는 동작

동작결과
기업 대시보드 노출 전환 (adminVisible = true)차단, 응답의 blockedBlacklistIds에 포함
유저풀에서 캠페인에 신규 추가403 FORBIDDEN
계약서 작성 완료 처리 (contractWritten = true)403 FORBIDDEN
진행표 선정 상태 일괄 변경요청 거부 (success: false + 사유)
관리자 대시보드 선정 상태 일괄 변경해당 건만 failedIds
일괄 제안(자동 충전)해당 건만 failedItems
직전 상태로 되돌리기403 FORBIDDEN

크리에이터의 계약 서명 제출은 막지 않습니다. 서명 시점의 상태는 이미 PROPOSAL이라 위 규칙에서 통과되며, 서명 도중에 막으면 계약이 중간에 깨집니다.

이미 SELECTED인 건을 다른 상태로 바꾸는 것도 막지 않습니다. 드롭 건의 후속 처리가 필요합니다.

데이터 구조

기존 TB_INFLUENCE_FLAG 테이블을 그대로 씁니다. 스키마 변경·마이그레이션이 없습니다.

컬럼
is_presettrue
preset_codeBLACKLIST
collab_nonull (캠페인 무관 전역)
created_by등록한 관리자 ID
statetrue = 차단중 / false = 해제됨

해제는 행을 지우지 않고 state = false로 남기므로 등록·해제 이력이 보존됩니다.

차단 판정 기준은 preset_code = 'BLACKLIST' 하나뿐입니다. 다른 NEGATIVE 플래그를 추가해도 차단되지 않으며, 되어서도 안 됩니다.

비고 칩(태그) 편집과의 관계

같은 태그 테이블을 쓰지만 리스트 관리의 비고 칩 편집으로는 블랙리스트를 붙이거나 뗄 수 없습니다.

FE 동작서버 처리
칩 목록에 BLACKLIST를 담아 전송무시 (경고 로그). 등록은 전용 API로만
칩 목록에서 BLACKLIST를 빼고 전송무시. 해제되지 않음

칩 저장은 "제출되지 않은 태그는 끈다"는 diff 방식이라, 그대로 두면 진행 중이라 목록에 남아 있는 블랙리스트 크리에이터의 태그를 하나 고치다가 아무 로그도 없이 퇴출이 풀립니다. 그래서 이 태그만 diff 대상에서 빼놨습니다.

FE는 비고 칩 UI에 BLACKLIST 선택지를 넣지 마세요. 보내도 서버가 버립니다. 등록·해제는 등록·해제 API를 쓰세요.

확인 (DB)

SELECT f.influence_no, i.name, f.created_by, f.created_at
FROM TB_INFLUENCE_FLAG f
JOIN TB_INFLUENCE i ON i.no = f.influence_no
WHERE f.preset_code = 'BLACKLIST'
  AND f.state = 1
ORDER BY f.created_at DESC;

On this page