-- 347_legal_meta_table.sql
-- 안전 자료실 A-1 (8/12) — 법령 문서 1건(=1버전 또는 1부속문서)당 1행. documents 1:0..1 위성, 최소형.
-- plan: safety-library-1 0-2. supersedes 체인 컬럼은 미포함 (개정 이벤트 10건 관찰 후 승격).
-- version_key: KR primary = MST / annex = 'MST|별표N' 합성 (같은 MST 별표 다건 UNIQUE 충돌 회피)
--   / interpretation = 소스 native id. dedup 키도 이 합성형 그대로 (R3-M4 silent skip 차단).
-- version_status 운영 계약 (B-1 PR② 일일 잡이 유일한 전이 지점, R2-B2·R3-M3):
--   전 버전 pending 적재 → 잡이 KST 기준 시행일 도래분 current 승격 + 직전 current 를 superseded
--   + 구버전 청크 in_corpus=false 를 한 트랜잭션 처리. repeal 도 잡 경유.
-- 입법예고 등 신호류 문서는 legal_meta 없음 (legal_meta 존재 = 법령 본문).
CREATE TABLE IF NOT EXISTS legal_meta (
    document_id        BIGINT PRIMARY KEY REFERENCES documents(id) ON DELETE CASCADE,
    family_id          TEXT NOT NULL REFERENCES legal_acts(family_id),
    law_doc_kind       TEXT NOT NULL DEFAULT 'primary' CHECK (law_doc_kind IN ('primary', 'annex', 'interpretation')),
    version_key        TEXT NOT NULL,
    promulgation_date  DATE,
    effective_date     DATE,
    version_status     TEXT NOT NULL DEFAULT 'pending' CHECK (version_status IN ('pending', 'current', 'superseded', 'repealed')),
    created_at         TIMESTAMPTZ NOT NULL DEFAULT now(),
    CONSTRAINT uq_legal_meta_version UNIQUE (family_id, law_doc_kind, version_key)
);
