"""Общие seed price-brackets для exhaustive-скрапперов (avito/cian/yandex).

EKB-настроенные (анализ прод-распределения вторички ЕКБ). Структура city-dict —
готова под per-city (multi-city: Москва пик 15-40М, Тюмень — иные; multi-city —
отдельная фича, см. vault decision). Сейчас единственный город — ekaterinburg.
"""

# (lo, hi) рубли; hi=None — открытый верхний брекет (без потолка). Закрытые
# брекеты соприкасаются — вызывающий применяет hi-1 (эксклюзивный верх), дедуп
# по source_id страхует на стыках.
_EKB_SECONDARY: list[tuple[int, int | None]] = [
    (0, 4_000_000),
    (4_000_000, 5_000_000),
    (5_000_000, 6_000_000),
    (6_000_000, 7_000_000),
    (7_000_000, 8_000_000),
    (8_000_000, 10_000_000),
    (10_000_000, 13_000_000),
    (13_000_000, 17_000_000),
    (17_000_000, 25_000_000),
    (25_000_000, 250_000_000),
    (250_000_000, None),  # 250М+ открытый catch-all (без потолка)
]

CITY_PRICE_SEED_BRACKETS: dict[str, list[tuple[int, int | None]]] = {
    "ekaterinburg": _EKB_SECONDARY,
}


def get_price_seed_brackets(city: str = "ekaterinburg") -> list[tuple[int, int | None]]:
    """Seed price-brackets для города (fallback на ekaterinburg)."""
    return CITY_PRICE_SEED_BRACKETS.get(city, _EKB_SECONDARY)
