Files
ga-commission-system/ga-common/src/main/resources/db/migration/V26__규제한도마스터.sql
T

66 lines
3.9 KiB
SQL
Raw Normal View History

-- V26: 규제 한도 마스터 + 1200%룰 기본 데이터 (보험업감독규정 2024년 기준)
-- ============================================================
-- 1. regulatory_limit — 감독규정 한도 마스터 (개정 이력 추적)
-- ============================================================
CREATE TABLE regulatory_limit (
limit_id BIGSERIAL PRIMARY KEY,
limit_type VARCHAR(30) NOT NULL,
product_category VARCHAR(30), -- NULL = ALL 상품 적용
limit_value NUMERIC(10,2) NOT NULL,
unit VARCHAR(10) NOT NULL, -- PERCENT / YEAR
effective_from DATE NOT NULL,
effective_to DATE, -- NULL = 현재 유효
regulation_ref VARCHAR(100),
description VARCHAR(500),
is_active BOOLEAN NOT NULL DEFAULT TRUE,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
created_by BIGINT,
updated_at TIMESTAMP,
updated_by BIGINT
);
CREATE INDEX idx_rl_type_category ON regulatory_limit(limit_type, product_category, effective_from DESC);
CREATE INDEX idx_rl_active ON regulatory_limit(is_active) WHERE is_active = TRUE;
-- ============================================================
-- 2. 기본 데이터 INSERT — 2024년 한국 보험업감독규정 표준
-- ============================================================
INSERT INTO regulatory_limit
(limit_type, product_category, limit_value, unit, effective_from, effective_to, regulation_ref, description)
VALUES
('TOTAL_RATIO', NULL, 1200, 'PERCENT', '2024-01-01', NULL,
'보험업감독규정 제5-15조의5', '총 모집수수료 한도 — 첫 1년 영업보험료의 1200% 이내'),
('FIRST_YEAR_RATIO', NULL, 35, 'PERCENT', '2024-01-01', NULL,
'보험업감독규정 제5-15조의5', '1차년도 지급 한도'),
('INSTALLMENT_YEARS', NULL, 7, 'YEAR', '2024-01-01', NULL,
'보험업감독규정 제5-15조의5', '분급 연한');
-- ============================================================
-- 3. 공통코드 그룹
-- ============================================================
INSERT INTO common_code_group (group_code, group_name, description, is_system, sort_order) VALUES
('LIMIT_TYPE', '한도유형', 'TOTAL_RATIO/FIRST_YEAR_RATIO/INSTALLMENT_YEARS', 'Y', 250),
('LIMIT_UNIT', '한도단위', 'PERCENT/YEAR', 'Y', 260),
('PRODUCT_CATEGORY', '상품카테고리', 'ALL/LIFE/ANNUITY/SAVINGS/EXCLUDED_AUTO/EXCLUDED_HEALTH', 'Y', 270)
ON CONFLICT (group_code) DO NOTHING;
INSERT INTO common_code (group_code, code, code_name, code_desc, sort_order) VALUES
('LIMIT_TYPE', 'TOTAL_RATIO', '총한도비율', '총 모집수수료 한도율 (1200%)', 10),
('LIMIT_TYPE', 'FIRST_YEAR_RATIO', '1차년도한도', '1차년도 지급 한도율 (35%)', 20),
('LIMIT_TYPE', 'INSTALLMENT_YEARS', '분급연한', '수수료 분급 기간 (7년)', 30),
('LIMIT_UNIT', 'PERCENT', '퍼센트', '%', 10),
('LIMIT_UNIT', 'YEAR', '', '연도', 20),
('PRODUCT_CATEGORY', 'ALL', '전체', '모든 상품 공통 적용', 10),
('PRODUCT_CATEGORY', 'LIFE', '종신', '종신보험', 20),
('PRODUCT_CATEGORY', 'ANNUITY', '연금', '연금보험', 30),
('PRODUCT_CATEGORY', 'SAVINGS', '저축', '저축보험', 40),
('PRODUCT_CATEGORY', 'EXCLUDED_AUTO', '자동차제외', '1200%룰 적용 제외 — 자동차보험', 50),
('PRODUCT_CATEGORY', 'EXCLUDED_HEALTH', '실손제외', '1200%룰 적용 제외 — 실손의료비', 60)
ON CONFLICT (group_code, code) DO NOTHING;