시드 구성
시더는 페르소나마다 step01 ~ step10 을 순차 실행합니다. 각 단계는 BaseStep 을 상속하며 execute() / clean() 두 메서드를 구현합니다. 모든 문서에는 공통적으로 _seed_marker: cone-demo-{key} 가 들어가 있어 task clean 으로 안전하게 일괄 삭제됩니다.
단계별 생성 데이터
Step 06 상세 — 청구서·partner_usage·할인 정책
요금 조회 화면(/settings/billing)이 정상 작동하도록 한 번에 3종 데이터를 만듭니다. 자세한 코드는 scripts/seed_demo/steps/step06_invoices.py 참조.
nhn_invoice
invoice_id 는 조직 단위로 1개 발급되어 같은 조직의 여러 프로젝트가 동일 invoice_id 를 공유합니다.
partner_usage
월별로 2건씩 생성됩니다 (unique index (company_id, date, status) 충족):
- Origin — NHN 원본 데이터 시뮬레이션
- API status — 같은 월 invoice 상태들의 우선순위 최상위
(
Overdue > Unissued > Invoiced > Paid)
discount_policy
페르소나당 1건 (데모 5% 할인, rate=0.05, 활성). 시작/종료월은 invoice 전체 기간을 포괄합니다. 요금 조회 화면의 "할인 적용 내역" 패널이 이 컬렉션을 읽기 때문에 partner_usage 만으로는 패널이 비어 보입니다.
컬렉션 일람
SeederContext
각 step 간 공유 상태는 scripts/seed_demo/context.py 의 SeederContext 데이터클래스를 통해 전달됩니다. 페르소나 단위로 새 컨텍스트가 만들어지고 restore_from_db() 로 부분 실행(task steps STEPS=…) 시 이전 단계 데이터를 다시 끌어옵니다.