-- partial unique index: 활성 행(pending/processing)은 (document_id, stage)당 최대 1개
-- 활성 중복이 남아있으면 여기서 자연스럽게 실패 -> 수동 정리 후 재시도
CREATE UNIQUE INDEX uq_queue_active
    ON processing_queue (document_id, stage)
    WHERE status IN ('pending', 'processing')
