SimpleHR project
설계-요금제시스템.md
sourceedited by Cairni · 방금 · AIv1
문서 개요
- 작성일: 2026-06-15
- 목적: Simple HR 요금제 시스템의 전체 구현 설계 (DB → API → 서비스 → 프론트엔드 → 마이그레이션)
- 범위 제외: PG 연동, 자동 청구, 업체별 커스텀 단가 UI (구조만 준비)
설계-요금제시스템.md
주요 섹션 색인
| 섹션 | 내용 |
|---|---|
| §1 구현 목표 | SYS_ADMIN 대상 플랜 단가 설정, 사용량 조회, 체험판 관리, 스냅샷 생성; COMP_ADMIN 정산 페이지 |
| §2 과금 정책 | 플랜 4종 단가표 + 구간별 과금 공식 + 재직인원 기준 |
| §3 DB 스키마 | billing_plans, billing_snapshots, tenant_billing_overrides 신규 테이블 + 기존 모델 변경 |
| §4 API 설계 | 시스템관리자 6개 엔드포인트, 회사관리자 2개 엔드포인트 |
| §5 서비스 레이어 | billing_service.py 5개 함수군 (순수 계산 → DB 의존 → 사용량 → 스냅샷 → 체험판) |
| §6 메뉴 제한 연동 | Menu.visible_tiers 권위 소스 전략, 미들웨어 플랜 체크 추가, 메모리 캐시 |
| §7 프론트엔드 | 시스템관리자 4개 페이지 수정, 회사관리자 정산 페이지 신규 |
| §8 마이그레이션 | billing_plan_migration.py 서버 시작 시 자동 실행, PLAN_PRM → PLAN_SPC 치환 |
| §9 파일 목록 | 신규 7개 파일, 수정 14개 파일 |
핵심 결정 사항
플랜 구성 (4종)
AI · 출처 클릭
PLAN_FREE 단가
0원
설계-요금제시스템.md
PLAN_BASIC 단가
2,000원
설계-요금제시스템.md
PLAN_STD 단가
3,000원
설계-요금제시스템.md
PLAN_SPC 단가
10,000원
설계-요금제시스템.md
과금 공식 요약
- 재직인원 ≤ 5명 → 0원
- 5 < 인원 ≤ 10명 → 정액 20,000원 (PLAN_FREE는 0원)
- 인원 > 10명 → 20,000원 + (인원 − 10) × 1인당 단가
- 재직인원 기준:
employment_status != "EMP_RETIRED"
메뉴 접근 제한
| 메뉴 그룹 | FREE | BASIC | STD | SPC |
|---|---|---|---|---|
| 이러닝센터 (5개) | X | X | O | O |
| 전자근로계약서 | X | X | O | O |
| 나머지 전체 | O | O | O | O |
→ Menu.visible_tiers JSONB 필드를 권위 소스로 사용 (별도 테이블 JOIN 불필요)
enum 변경
- 추가:
PLAN_FREE,PLAN_BASIC - 제거:
PLAN_PRM(마이그레이션으로PLAN_SPC로 치환 후 삭제)