gendesign/backend/app/schemas
Light1YT 641f0d56ed
All checks were successful
CI / changes (pull_request) Successful in 8s
CI / frontend-tests (pull_request) Successful in 1m9s
CI / openapi-codegen-check (pull_request) Successful in 2m1s
CI / backend-tests (pull_request) Successful in 14m39s
feat(site-finder): газ — свободная мощность ГРС + пометка ЕЭСК в §3 (#2119 Фаза B1)
Газовая вертикаль точек подключения:
- Миграция 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-нота учтены).
2026-07-02 17:37:49 +05:00
..
__init__.py init 2026-04-25 13:45:19 +03:00
chat.py fix(week-review): backend-аудит v2 — 82 фиксов (#1660) 2026-06-17 17:13:38 +00:00
complex_buildings.py feat(api,analytics): bulk geo backfill + complex_buildings query 2026-05-11 15:56:17 +03:00
concept.py feat(section7): editable section footprint + корпус plural/program hint (#1953) (#2102) 2026-06-30 09:48:11 +00:00
custom_poi.py feat(#254): user_custom_pois — backend schema + CRUD + scoring integration 2026-05-17 09:34:33 +03:00
insight.py feat(insights): manual-entry Insight entity CRUD + §19 audit (#948 part A) 2026-06-08 12:41:39 +05:00
job_settings.py feat(jobs): centralized job_settings API + DB-driven beat schedule 2026-05-11 15:38:13 +03:00
location.py feat(location): district-level Location entity + indices (#948 part B) 2026-06-08 13:28:19 +05:00
market.py feat(analytics): velocity-anomaly alerts (#17) + ARN ДДУ price indicator (#99) 2026-06-13 22:04:49 +05:00
nspd_bulk.py feat(site-finder): per-building помещения/машино-места + parking_ratio (on-demand MVP, #96) 2026-06-14 18:48:16 +05:00
own_project.py feat(site-finder): own-portfolio data source for §25.3 cannibalization (#1169 PR1) 2026-06-08 16:21:53 +05:00
parcel.py feat(site-finder): газ — свободная мощность ГРС + пометка ЕЭСК в §3 (#2119 Фаза B1) 2026-07-02 17:37:49 +05:00
recommend.py fix(schemas): expose per-bucket elasticity + velocity_source в RecommendBucket (#1204) 2026-06-13 05:14:05 +00:00
trade_in.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00