Files
ga-commission-system/ga-common/src/main/resources/db/migration/V46__자격관리.sql
T
2026-05-14 01:21:27 +09:00

36 lines
2.0 KiB
SQL

-- V46: 설계사 자격 관리 (agent_license)
-- 생보/손보/변액 자격증 만료·갱신 이력. 만료 임박 알림용 인덱스 포함.
CREATE TABLE agent_license (
license_id BIGSERIAL PRIMARY KEY,
agent_id BIGINT NOT NULL REFERENCES agent(agent_id),
license_type VARCHAR(20) NOT NULL,
license_no VARCHAR(50) NOT NULL,
issued_date DATE NOT NULL,
expires_date DATE NOT NULL,
renewed_from BIGINT REFERENCES agent_license(license_id),
-- 갱신 전 자격증 참조
status VARCHAR(20) NOT NULL DEFAULT 'ACTIVE',
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
created_by BIGINT,
updated_at TIMESTAMP,
UNIQUE (agent_id, license_type, license_no),
CHECK (license_type IN ('LIFE','NONLIFE','VARIABLE')),
CHECK (status IN ('ACTIVE','EXPIRED','SUSPENDED')),
CHECK (expires_date > issued_date)
);
COMMENT ON TABLE agent_license IS '설계사 자격 관리 — 생보/손보/변액 자격증 만료·갱신 이력';
COMMENT ON COLUMN agent_license.agent_id IS '설계사 FK';
COMMENT ON COLUMN agent_license.license_type IS '자격 종류 (LIFE=생명보험/NONLIFE=손해보험/VARIABLE=변액보험)';
COMMENT ON COLUMN agent_license.license_no IS '자격증 번호';
COMMENT ON COLUMN agent_license.issued_date IS '자격증 발급일';
COMMENT ON COLUMN agent_license.expires_date IS '자격증 만료일 (갱신 주기 5년 기준)';
COMMENT ON COLUMN agent_license.renewed_from IS '갱신 전 자격증 ID (갱신 이력 추적용)';
COMMENT ON COLUMN agent_license.status IS 'ACTIVE=유효/EXPIRED=만료/SUSPENDED=정지';
-- 만료 임박 알림용 인덱스 (expires_date 단독 + 복합)
CREATE INDEX idx_al_agent ON agent_license(agent_id, status);
CREATE INDEX idx_al_expires ON agent_license(expires_date, status);
CREATE INDEX idx_al_type_expires ON agent_license(license_type, expires_date);