테스트 데이터 세팅
테스트 데이터 정리
테스트로 만든 캠페인과 거기에 딸린 데이터를 FK 역순으로 일괄 삭제합니다.
테스트 데이터 정리
테스트로 만든 캠페인을 딸린 데이터까지 통째로 지웁니다.
HTTP 요청
DELETE /ai/test-setup/cleanup삭제 대상
제목이 아래 둘 중 하나로 시작하는 캠페인이 대상입니다.
| 접두사 | 만든 API |
|---|---|
자동생성- | 캠페인 생성, 캠페인 + 가이드라인 생성 |
[TEST] | recruiting-campaign, campaign-with-applicants |
인플루언서는 지우지 않습니다. 테스트에 쓰는 크리에이터는 실제 유저 계정이라, 캠페인에 딸린 신청 기록만 지웁니다.
삭제 순서
선정 API까지 진행한 캠페인은 신청 한 건에 계약·배송·검수·제출물·예산이 매달려 있습니다. 신청부터 지우면 FK 제약에 막히므로, 신청에 딸린 자식을 먼저 전부 지웁니다.
1. 신청에 딸린 자식 (FK 역순)
피드백 미디어 → 승인 로그 → 피드백 → 제출물 이력 → 제출물 항목 → 검수 라운드
→ 콘텐츠/최종 제출물 → 추가금 → 추가 검수 요청 → AI 검수 쿼터 → 제공 옵션 선택
→ 제출 링크 토큰 → 트리거 로그 → 신청자 일정 → 추천사 이력 → 단가 협의
→ 연락 로그 → 매칭 → 배송 → 예산 → 계약 감사 로그 → 계약 문서 → 계약
2. 캠페인 일정 (TB_CAMPAIGN_SCHEDULE)
3. 신청 (TB_CAMPAIGN_APPLICATION)
4. 크레딧 트랜잭션 + MongoDB 가이드라인
5. 캠페인 (TB_COLLAB)응답 (200 OK)
{
"status": 200,
"code": null,
"message": "테스트 데이터 정리 완료",
"data": {
"deletedApplicationChildren": 41,
"deletedSchedules": 24,
"deletedApplications": 4,
"deletedCreditTransactions": 2,
"deletedGuidelines": 2,
"deletedCollabs": 2
}
}| 필드 | 설명 |
|---|---|
deletedApplicationChildren | 신청에 딸린 자식 행 합계 |
deletedSchedules | 캠페인 단계별 일정 |
deletedApplications | 신청 |
deletedCreditTransactions | 크레딧 트랜잭션 |
deletedGuidelines | MongoDB 가이드라인 문서 |
deletedCollabs | 캠페인 |
유지보수 주의
자식 삭제는 JPQL 문자열 24개로 되어 있고, JPQL 은 런타임에 파싱됩니다. 엔티티 이름이나 필드명이 바뀌어도 컴파일 단계에서 안 걸리고 호출 시점에 500 이 납니다. 관련 엔티티를 리팩터링했다면 TestSetupService.deleteApplicationChildren 의 경로를 함께 확인하세요.
JPQL 벌크 삭제는 조인을 쓸 수 없어, 연관은 FK 컬럼(alias.assoc.id)으로만 좁히고 두 단계 이상 떨어진 대상은 서브쿼리로 id 를 뽑아 겁니다.