-- 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;