파트너 상태 및 구독 연동 통합

파트너 상태 및 구독 연동 통합

ADR-220 파트너 상태 및 구독 연동 통합

1. Metadata

  • ADR ID: ADR-220
  • Status: draft
  • Date: 2026-03-09
  • Owner: YSY

2. Domain Decision

  1. partner_registered|active|suspended 상태 모델을 유지한다.
  2. 구독 활성 상태에서만 발행 권한을 허용한다.
  3. 구독 해지/만료 시 권한을 즉시 회수한다.
  4. 매장 등록 완료만으로는 발행 권한을 부여하지 않는다.
  5. 플랜 카탈로그 및 세부 권한 파라미터는 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

  • Domain/Product/UX/Tech/Ops 결정이 충돌하지 않는다.
  • 구현 기준은 SPEC과 정합성을 유지한다.
  • 운영 절차는 RUNBOOK으로 연결된다.