-- V32: settle_master 보류 사유 코드 컬럼 추가 + HOLD_REASON 공통코드

-- ============================================================
-- 1. settle_master 에 hold_reason_code 컬럼 추가
--    (기존 hold_reason VARCHAR(500) 자유텍스트 → 코드화 병행)
-- ============================================================

ALTER TABLE settle_master
    ADD COLUMN hold_reason_code VARCHAR(30);

COMMENT ON COLUMN settle_master.hold_reason_code IS '보류 사유 코드 (HOLD_REASON 그룹). status=HOLD 일 때 필수';

-- ============================================================
-- 2. 공통코드 HOLD_REASON
-- ============================================================

INSERT INTO common_code_group (group_code, group_name, description, is_system, sort_order) VALUES
    ('HOLD_REASON', '보류사유', 'NEED_DOC/UNDER_REVIEW/DISPUTE_OPEN/TAX_ISSUE/BANK_ERROR/COMPLIANCE/OTHER', 'Y', 330)
ON CONFLICT (group_code) DO NOTHING;

INSERT INTO common_code (group_code, code, code_name, code_desc, sort_order) VALUES
    ('HOLD_REASON', 'NEED_DOC',      '서류미비',   '필수 서류 미제출로 인한 보류',              10),
    ('HOLD_REASON', 'UNDER_REVIEW',  '검토중',     '관리자 검토 진행 중 보류',                  20),
    ('HOLD_REASON', 'DISPUTE_OPEN',  '이의신청',   '이의신청(commission_dispute) 처리 중 보류', 30),
    ('HOLD_REASON', 'TAX_ISSUE',     '세무이슈',   '세무 정보 미확인 또는 이슈',                40),
    ('HOLD_REASON', 'BANK_ERROR',    '계좌오류',   '계좌 정보 오류 또는 이체 실패',             50),
    ('HOLD_REASON', 'COMPLIANCE',    '컴플라이언스', '법규/감독규정 검토 필요',                 60),
    ('HOLD_REASON', 'OTHER',         '기타',       '기타 보류 사유',                            70)
ON CONFLICT (group_code, code) DO NOTHING;
