feat(tradein): /scrapers/avito — 6-я секция Расписание (in-app scheduler UI) #483

Merged
lekss361 merged 1 commit from feat/tradein-frontend-scheduler into main 2026-05-23 14:55:32 +00:00

1 commit

Author SHA1 Message Date
lekss361
5a8715789e feat(tradein): /scrapers/avito — 6-я секция Расписание (in-app scheduler UI)
UI для backend scheduler (parallel PR feat/tradein-scheduler-backend) — заменяет
manual SSH crontab setup на UI-managed config в БД.

- 2 hooks: useSchedules (poll 30s) + useUpdateSchedule (PUT с invalidate)
- Local TS interfaces: ScheduleConfig, ScheduleConfigUpdate
- 6-я секция 'Расписание автозапуска (in-app scheduler)':
  * Status preview: enabled badge, window (МСК + UTC), next_run_at, last_run_at + run_id
  * Edit form: enabled checkbox, window start/end (вход в МСК!), pages/anchor, detail top-N,
    delay, radius, enrich_houses checkbox
  * Submit → PUT /admin/scrape/schedules/avito_city_sweep
- UTC ↔ МСК конвертация: utcToMsk / mskToUtc / formatMskRange helpers
- CSS: .scraper-section--schedule (зелёный success border), .schedule-status grid

Backend хранит часы UTC, UI ввод/отображение — МСК (UTC+3).
Default из migration 052: 02:00-05:00 UTC = 05:00-08:00 МСК.
2026-05-23 17:50:32 +03:00