Files
ga-commission-system/ga-common/src/main/resources/db/migration/V28__차등환수룰.sql
T
GA Pro cc5d0e55f2 feat(db): V28 차등 환수 룰 (해약 경과월별 환수 비율) (도메인 P1-3-a)
도메인 P1 세번째 항목 — 차등 환수. DB 스키마/데이터만.

신규 테이블 chargeback_grade:
- (months_from, months_to) 범위형 룰
- product_category NULL=ALL (상품별 차등 가능)
- effective_from/to 개정 이력 추적
- CHECK 제약: months_from >= 0 AND months_to >= months_from

기존 V3 chargeback_rule(계약별 일반 룰)과 별개 — 단계별 환수 비율 전담.

기본 데이터 (2024-01-01, NULL=ALL, 표준 5단계):
- 1~12개월:  100% (계약 후 1년 이내 해약)
- 13~24개월: 50%
- 25~36개월: 25%
- 37~84개월: 10%
- 85개월 이상: 0% (환수 면제, 분급 7년 종료 후)

인덱스:
- (product_category, months_from, effective_from DESC) 환수율 조회
2026-05-13 00:49:30 +09:00

39 lines
2.1 KiB
SQL

-- V28: 차등 환수 룰 (chargeback_grade — 해약 경과월별 단계별 환수 비율)
-- 기존 chargeback_rule(V3)은 계약별 일반 룰 — 본 테이블은 해약 시점별 차등 비율 마스터
-- ============================================================
-- 1. chargeback_grade — 해약 경과월별 환수 비율 마스터
-- ============================================================
CREATE TABLE chargeback_grade (
grade_id BIGSERIAL PRIMARY KEY,
product_category VARCHAR(30), -- NULL = ALL 상품
months_from INT NOT NULL, -- 해약 경과월 시작 (이상)
months_to INT, -- 해약 경과월 종료 (이하), NULL = 무한대
chargeback_percent NUMERIC(5,2) NOT NULL, -- 환수율 %
effective_from DATE NOT NULL,
effective_to DATE, -- NULL = 현재 유효
is_active BOOLEAN NOT NULL DEFAULT TRUE,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
created_by BIGINT,
updated_at TIMESTAMP,
updated_by BIGINT,
CHECK (months_from >= 0 AND (months_to IS NULL OR months_to >= months_from))
);
CREATE INDEX idx_cbg_category_months ON chargeback_grade(product_category, months_from, effective_from DESC);
-- ============================================================
-- 2. 기본 데이터 (2024-01-01, NULL=ALL 상품, 표준 차등 환수 룰)
-- ============================================================
INSERT INTO chargeback_grade
(product_category, months_from, months_to, chargeback_percent, effective_from)
VALUES
(NULL, 1, 12, 100, '2024-01-01'), -- 1~12개월: 전액 환수
(NULL, 13, 24, 50, '2024-01-01'), -- 13~24개월: 50%
(NULL, 25, 36, 25, '2024-01-01'), -- 25~36개월: 25%
(NULL, 37, 84, 10, '2024-01-01'), -- 37~84개월: 10%
(NULL, 85, NULL, 0, '2024-01-01') -- 85개월 이상: 환수 없음
ON CONFLICT DO NOTHING;