Газовая вертикаль точек подключения: - Миграция 181: gas_grs_capacity (ГРС с выходами; UNIQUE NULLS NOT DISTINCT на (grs_name_norm, output_name) — грабли #140). - gazprom_grs_loader: bs4-парсер инлайн HTML-таблицы «техническая возможность» ГТЕ (~316 ГРС; гео-блок → RUN-ON-PROD): header-driven маппинг колонок, rowspan forward-fill имени (допущение col-0 задокументировано), числа через общий parse_reserve_number, SAVEPOINT per-row, unknown-колонки → raw jsonb. - Celery sync_gas_grs_capacity + beat вт 05:00 MSK. - Endpoint connection-capacity: gas.city_grs (городские ГРС Свердловск/ Екатеринбург, агрегация по выходам) + gas.total_free_th_m3_h; graceful при отсутствии таблицы (schema-first окно). reserve_note у ПС ЕЭСК без опубликованного резерва: «Резерв — по запросу в АО «ЕЭСК» (город)». - Схемы GasGrsRow/GasCapacityBlock/reserve_note аддитивны; api-types +31/-0. - Фронт: блок «ГАЗ» в карточке резервов (по-ГРС «свободно X из Y тыс. м³/ч», бейджи резерв/исчерпана, расшивка, N выходов, суммарная строка) + серая reserve_note-строка в попапе ЦП. Числа через toFiniteNumber. 57 backend-тестов зелёные; deep-review ✅ APPROVE (2 minor-нота учтены). |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| models | ||
| observability | ||
| schemas | ||
| scrapers | ||
| services | ||
| templates | ||
| workers | ||
| __init__.py | ||
| main.py | ||