Stage 1a: Shapely-сервис — отступы, сетка, API-контракт #5

Closed
opened 2026-04-26 11:24:48 +00:00 by lekss361 · 2 comments
lekss361 commented 2026-04-26 11:24:48 +00:00 (Migrated from github.com)

Backend (Person A):

  • app/services/generative/geometry.py: парсинг GeoJSON-полигона участка через Shapely
  • Нормативные отступы: buffer от границ участка, от других зданий, инсоляция
  • Регулярная сетка для размещения корпусов (placement grid)
  • Pydantic-схемы ConceptInput / ConceptOutput / ConceptVariant (уже есть в app/schemas/concept.py, дополнить если нужно)
  • POST /api/v1/concepts — пока с заглушкой (3 пустых варианта), реальный алгоритм в Stage 1b

Frontend (Person B):

  • Страница /concept (есть скелет)
  • Leaflet карта, импорт GeoJSON-полигона drag-and-drop
  • Отрисовка участка на карте
  • Форма параметров: класс жилья, этажность, тип застройки
  • Вывод 3 вариантов в табах (заглушка)

API-контракт стык: ConceptVariant в backend/app/schemas/concept.py фиксируется в первый день этапа. Дальше работают независимо.

Codegen: при правке Pydantic-схем оба запускают npm run codegen.

Acceptance:

  • Загружаешь GeoJSON-полигон → видишь его на карте
  • Жмёшь «сгенерировать» → POST /api/v1/concepts → возвращает 3 заглушечных варианта
  • 3 варианта показаны в табах с метаданными (стратегия, площадь застройки)

Связанные: WorkSplit_Generative_Stage1, Stages_MVP_v1.

**Backend (Person A):** - `app/services/generative/geometry.py`: парсинг GeoJSON-полигона участка через Shapely - Нормативные отступы: buffer от границ участка, от других зданий, инсоляция - Регулярная сетка для размещения корпусов (placement grid) - Pydantic-схемы `ConceptInput` / `ConceptOutput` / `ConceptVariant` (уже есть в `app/schemas/concept.py`, дополнить если нужно) - `POST /api/v1/concepts` — пока с заглушкой (3 пустых варианта), реальный алгоритм в Stage 1b **Frontend (Person B):** - Страница `/concept` (есть скелет) - Leaflet карта, импорт GeoJSON-полигона drag-and-drop - Отрисовка участка на карте - Форма параметров: класс жилья, этажность, тип застройки - Вывод 3 вариантов в табах (заглушка) **API-контракт стык:** `ConceptVariant` в `backend/app/schemas/concept.py` фиксируется в первый день этапа. Дальше работают независимо. **Codegen:** при правке Pydantic-схем оба запускают `npm run codegen`. **Acceptance:** - [ ] Загружаешь GeoJSON-полигон → видишь его на карте - [ ] Жмёшь «сгенерировать» → POST /api/v1/concepts → возвращает 3 заглушечных варианта - [ ] 3 варианта показаны в табах с метаданными (стратегия, площадь застройки) Связанные: `WorkSplit_Generative_Stage1`, `Stages_MVP_v1`.
Owner

Status update — Stage 1a НЕ реализован. app/services/generative/geometry.py отсутствует. POST /api/v1/concepts endpoint stub-нутый или нет. Страница /concept со скелетом — нужна проверка.

Foundation Shapely + GeoAlchemy2 уже в стеке. Pydantic-схемы ConceptInput/ConceptOutput могут быть частично в app/schemas/concept.py — нужна верификация.

Issue остаётся в Stage 1 milestone как foundation для #12, #6.

Status update — Stage 1a НЕ реализован. `app/services/generative/geometry.py` отсутствует. `POST /api/v1/concepts` endpoint stub-нутый или нет. Страница `/concept` со скелетом — нужна проверка. Foundation Shapely + GeoAlchemy2 уже в стеке. Pydantic-схемы `ConceptInput`/`ConceptOutput` могут быть частично в `app/schemas/concept.py` — нужна верификация. Issue остаётся в Stage 1 milestone как foundation для #12, #6.
Owner

Closing as duplicate of #54 (B1-1: Generative Stage 1a — Shapely-парсер + placement engine).

#54 — это superset с priority/critical, более детальным scope (полный stage с экспортами) и привязкой к B1 серии Generative MVP. Stub уже готов (backend/app/services/generative/geometry.py:13), frozen contracts + smoke tests pass — реализацию вести в #54.

Audit reference: audits/issues_audit_2026_05_16.md (2026-05-17).

Closing as duplicate of #54 (B1-1: Generative Stage 1a — Shapely-парсер + placement engine). `#54` — это superset с priority/critical, более детальным scope (полный stage с экспортами) и привязкой к B1 серии Generative MVP. Stub уже готов (`backend/app/services/generative/geometry.py:13`), frozen contracts + smoke tests pass — реализацию вести в #54. Audit reference: `audits/issues_audit_2026_05_16.md` (2026-05-17).
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#5
No description provided.