gendesign/tradein-mvp/backend
lekss361 bfe56e44d6 feat(tradein): global scraper delay setting (applies across all scrapers)
- SQL migrations 053 (scraper_settings table) + 054 (seed global + per-source rows)
- scraper_settings.py: get_scraper_delay() returns max(per_source, global);
  in-memory cache TTL=60s; invalidate_cache() for immediate effect on PUT
- avito/cian/n1 scrapers load delay from DB in __init__ (mirrors yandex pattern)
- Admin API: GET /scraper-settings (list all), PUT /scraper-settings/{source}
  with cache invalidation on update; CAST(:d AS numeric) per psycopg v3 rules
- 10 unit tests: global>per_source, per_source>global, global=0, DB error fallback,
  cache invalidation, API endpoint smoke
2026-05-23 18:25:40 +03:00
..
app feat(tradein): global scraper delay setting (applies across all scrapers) 2026-05-23 18:25:40 +03:00
data/sql feat(tradein): global scraper delay setting (applies across all scrapers) 2026-05-23 18:25:40 +03:00
tests feat(tradein): global scraper delay setting (applies across all scrapers) 2026-05-23 18:25:40 +03:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
pyproject.toml feat(tradein): Phase 3.2 — /api/v1/search endpoint + Redis cache (#479) 2026-05-23 14:44:22 +00:00