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