Billing 모듈
모듈 개요
billing 모듈은 Lumie 플랫폼의 구독 결제와 알림톡 크레딧을 관리합니다. 결제 경로는 두 가지로 명확히 분리됩니다.
| 경로 | 대상 | 상태 |
|---|---|---|
| 구독 결제 | Lumie SaaS 요금제(구독) | Toss Payments 연동 — 운영 중 |
| 수강료 수납 | 학원 ↔ 학생/보호자 간 수강료 | TuitionBillingGatewayPort 시임 — PaySsam("결제선생") 어댑터 대기 중 |
수강료 직접 Toss 연동(Toss sub-merchant/빌링키 방식)은 commit ff9db43에서 제거되었습니다. 수납 로직은 modules/tuition이 담당하고, 결제 대행사와의 통신 지점은 TuitionBillingGatewayPort 단일 파일 교체로 활성화됩니다.
- 배포: lumie-backend 모놀리 스의
modules/billing - 데이터베이스: PostgreSQL
public스키마 (구독, 요금제, 인보이스, 알림톡 크레딧) - 결제 게이트웨이: Toss Payments (
TossPaymentClient) — 구독 과금 전용 - 주요 의존성:
TenantService(internal-api)
주요 기능
1. 요금제 관리
- 4단계 요금제 (FREE, BASIC, PRO, ENTERPRISE)
- 요금제별 제한사항 및 기능 관리
- 월간/연간 요금 설정
2. 구독 관리
- 구독 생성, 변경, 취소, 취소 철회
- 무료 구독 자동 생성
- 구독 상태 관리 (ACTIVE, CANCELLED, SUSPENDED 등)
- 예약 플랜 변경, 월간 자동 과금 스케줄러
3. 결제 처리 (구독 전용 — Toss Payments)
- 빌링키 등 록/관리 (
/v1/billing-keys) - 결제 확인 및 Toss 웹훅 처리 (
/internal/webhooks/toss) - 인보이스 생성 및 관리
- 결제 내역 조회
4. 알림톡 크레딧
- 크레딧 잔액 조회 및 충전 (
/v1/alimtalk/credits) - 자동 충전 설정/해제
- Toss Payments를 통한 크레딧 구매
5. 할당량 검증
- 학생 수, 학원 수, 스태프 수 제한
- OMR 월간 할당량 관리
BillingService(internal-api) 통해 다른 모듈이 조회
6. 수강료 수납 게이트웨이 시임 (modules/tuition)
TuitionBillingGatewayPort— PG-무관 아웃바운드 포트- 현재 구현체:
NotConfiguredTuitionBillingGateway(loud-fail 스텁) - PaySsam("결제선생") 어댑터 1-파일 교체로 활성화 예정