파트너 상태 및 구독 연동 통합
ADR-220 파트너 상태 및 구독 연동 통합
1. Metadata
- ADR ID: ADR-220
- Status: draft
- Date: 2026-03-09
- Owner: YSY
2. Domain Decision
partner_registered|active|suspended 상태 모델을 유지한다.- 구독 활성 상태에서만 발행 권한을 허용한다.
- 구독 해지/만료 시 권한을 즉시 회수한다.
- 매장 등록 완료만으로는 발행 권한을 부여하지 않는다.
- 플랜 카탈로그 및 세부 권한 파라미터는 ADR-270에서 단일 관리한다.
3. Product Decision
- 파트너 상태와 구독 상태의 조합에 따라 기능 접근을 명확히 제한한다.
4. UX Decision
- 권한 회수/제한 시 사용자에게 현재 제한 사유와 복구 경로를 즉시 안내한다.
5. Tech Decision
- 권한 판정은 단일 서버 기준 함수로 처리하고 클라이언트는 표시 보조만 수행한다.
6. Ops Decision
- 상태 변경 이력과 구독 상태 변경 이력을 감사 기준으로 보존한다.
7. Implementation Contract (Optional)
7.1 API Contract
- 파트너 기능 접근 전
partner_state, subscription_state, can_issue를 서버에서 판정한다. - 발행 권한 미충족은
PARTNER_CAPABILITY_DENIED로 반환한다.
7.2 Data Contract
- 상태값은
partner_registered|partner_active|partner_suspended로 고정한다. - 상태 변경 이벤트는 이력 테이블에 시각/주체/사유를 함께 저장한다.
7.3 Error/Observability Contract
- 권한 회수/복구 이벤트를 감사로그에 기록한다.
- 상태-구독 불일치 감지 건수를 운영 대시보드로 추적한다.
7.4 Test/Acceptance Contract
- 모든 상태 조합에서
can_issue 판정이 정책과 일치해야 한다. - 구독 만료 즉시 발행 권한이 회수되어야 한다.
8. Validation