-- 084_scrape_schedules_seed_n1_sweep.sql
-- Seed row для N1.ru периодического city-sweep (#575).
--
-- N1 — региональный портал недвижимости ЕКБ. В отличие от avito/yandex sweep
-- (засеяны DORMANT из-за анти-бот риска с prod-IP), N1 засеян ВКЛЮЧЁННЫМ
-- (enabled = true): задача #575 — активировать N1 как источник listings
-- (acceptance: ≥100 строк source='n1' за сутки). Anti-bot у регионального портала
-- мягче, чем у Avito/Yandex; параметры консервативные. Capability полностью wired
-- (run_n1_city_sweep + trigger_n1_city_sweep_run + dispatch в scheduler).
--
-- ЕСЛИ N1 начнёт блокировать prod-IP — выключить одной строкой:
--     UPDATE scrape_schedules SET enabled = false WHERE source = 'n1_city_sweep';
-- Ручной on-demand триггер для проверки до ночного окна — POST /api/v1/admin/scrape/n1.
--
-- ЗАВИСИМОСТИ: 052_scrape_schedules.sql (таблица + UNIQUE(source)).
-- Idempotent: ON CONFLICT (source) DO NOTHING — безопасно запускать повторно.
--
-- n1_city_sweep — окно 02:00-05:00 UTC (05:00-08:00 МСК), как avito/yandex sweep.
--   default_params: pages_per_anchor (страниц SERP на anchor), request_delay_sec
--   (пауза между anchor'ами), radius_m (прокидывается в fetch_around).
--   У N1 sweep НЕТ detail/houses-enrich шага (как у yandex).

BEGIN;

INSERT INTO scrape_schedules (
    source,
    enabled,
    window_start_hour,
    window_end_hour,
    next_run_at,
    default_params
)
VALUES
(
    'n1_city_sweep',
    true,                                        -- #575: активируем N1 как источник
    2,
    5,
    ((CURRENT_DATE + INTERVAL '1 day') + make_interval(hours => 2)) AT TIME ZONE 'UTC',
    '{"pages_per_anchor": 2, "request_delay_sec": 7, "radius_m": 1500}'::jsonb
)
ON CONFLICT (source) DO NOTHING;

COMMENT ON TABLE scrape_schedules IS
    'In-app scheduler config (заменяет cron-script setup). '
    'Sources: avito_city_sweep, yandex_city_sweep (dormant, #561), '
    'n1_city_sweep (#575), cian_history_backfill, rosreestr_dkp_import.';

COMMIT;
