-- crawl-24x7 사이클 3 소스 seed (B-4 시그널 + C-4 공학 지속수집) — 2026-06-11 전 URL live 검증.
-- 326 선례: WHERE NOT EXISTS idempotent, 기존 행 보존, 신규만 insert (단일 statement).
-- fetch_method='signal-only' (B-4): 헤드라인+요약만 인제스트, 페이지 fetch 0,
--   summarize 스킵(검색 색인만 — embed/chunk). 다이제스트는 ai_summary NULL 제외라 자연 배제.
-- Bloomberg = anti-bot 최강이라 본문 수집 비권고 → 시그널 전용. 피드에 비디오 혼재 실측 → skip-video.
-- Economist = 실측 200 (Archiver UA 는 feed-reader 로 취급됨 — 브라우저 UA 만 403). 구독 없음 = 시그널.
-- Nikkei Asia = RSS 1.0(RDF) 실측 — feedparser 가 네이티브 정규화 (title/link 만, 요약·날짜 없음
--   = 제목 시그널). 코드 분기 불요 (tests/test_crawl_cycle3_shapes.py fixture 회귀로 박제).
-- arXiv/ASME = 초록이 곧 본문 (C-4 2단: 초록 색인 먼저, 선별 전문은 Phase 3) → signal-only 재사용.
-- IEEE Spectrum = 피드 description 이 전문 (7.9~14K자 실측) → feed-full. 카테고리 필터 = topic 피드.
INSERT INTO news_sources
    (name, country, language, feed_type, feed_url, category, enabled,
     fetch_method, fulltext_policy, source_channel, parser_quirk)
SELECT v.name, v.country, v.language, v.feed_type, v.feed_url, v.category, v.enabled,
       v.fetch_method, v.fulltext_policy, v.source_channel::source_channel, v.parser_quirk
FROM (VALUES
    -- B-4: 시그널 전용 (news 채널 — 헤드라인 시그널)
    ('Bloomberg Markets',        'US', 'en', 'rss', 'https://feeds.bloomberg.com/markets/news.rss',                                              'Economy',       true, 'signal-only', 'none',      'news',  'skip-video'),
    ('Bloomberg Technology',     'US', 'en', 'rss', 'https://feeds.bloomberg.com/technology/news.rss',                                           'Technology',    true, 'signal-only', 'none',      'news',  'skip-video'),
    ('Economist Latest',         'GB', 'en', 'rss', 'https://www.economist.com/latest/rss.xml',                                                  'International', true, 'signal-only', 'none',      'news',  NULL),
    ('Nikkei Asia',              'JP', 'en', 'rss', 'https://asia.nikkei.com/rss/feed/nar',                                                      'International', true, 'signal-only', 'none',      'news',  NULL),
    -- C-4: 공학 지속수집 (crawl 채널 — 도메인 재료. API 공지/CSB/CCPS 는 전용 워커가 runtime 등록)
    ('ASME J. Pressure Vessel Technology', 'US', 'en', 'rss', 'https://asmedigitalcollection.asme.org/rss/site_1000037/LatestOpenIssueArticles_1000020.xml', 'Engineering', true, 'signal-only', 'none', 'crawl', NULL),
    ('arXiv cond-mat.mtrl-sci',  'US', 'en', 'rss', 'https://rss.arxiv.org/rss/cond-mat.mtrl-sci',                                               'Engineering',   true, 'signal-only', 'none',      'crawl', NULL),
    ('arXiv physics.app-ph',     'US', 'en', 'rss', 'https://rss.arxiv.org/rss/physics.app-ph',                                                  'Engineering',   true, 'signal-only', 'none',      'crawl', NULL),
    ('IEEE Spectrum Energy',     'US', 'en', 'rss', 'https://spectrum.ieee.org/feeds/topic/energy.rss',                                          'Engineering',   true, 'rss',         'feed-full', 'crawl', NULL),
    ('IEEE Spectrum Robotics',   'US', 'en', 'rss', 'https://spectrum.ieee.org/feeds/topic/robotics.rss',                                        'Engineering',   true, 'rss',         'feed-full', 'crawl', NULL)
) AS v(name, country, language, feed_type, feed_url, category, enabled,
       fetch_method, fulltext_policy, source_channel, parser_quirk)
WHERE NOT EXISTS (
    SELECT 1 FROM news_sources ns WHERE ns.name = v.name
);
