diff --git a/frontend/src/lib/api-types.ts b/frontend/src/lib/api-types.ts index c162fcb5..a7ec5733 100644 --- a/frontend/src/lib/api-types.ts +++ b/frontend/src/lib/api-types.ts @@ -469,6 +469,43 @@ export interface paths { patch?: never; trace?: never; }; + "/api/v1/parcels/{cad_num}/neighbor-buildings": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Соседние здания (footprint'ы) для 3D-сцены §7 (Forgejo #2180) + * @description GeoJSON FeatureCollection footprint'ов соседних зданий вокруг участка. + * + * Для 3D-сцены «Размещение застройки» (§7 отчёта ПТИЦА): рисуем существующую + * застройку контекста, чтобы концепция вписывалась в окружение. Здания берём из + * `cad_buildings` в радиусе `radius_m` (ST_DWithin по geography). Здания, + * ПЕРЕСЕКАЮЩИЕ сам участок, исключаем — на его месте строим мы (их footprint'ы + * только мешали бы сцене). + * + * Геометрия упрощается (ST_SimplifyPreserveTopology, ~0.5 м) — фронту не нужна + * кадастровая точность контура для превью. properties каждой фичи: + * cad_num, floors (int|null), height_m (floors×3 если floors>0, иначе null), + * building_name (null если пусто), year_built (int|null), is_neighbor=true. + * + * Отдаём максимум 300 ближайших (ORDER BY расстоянию); `truncated=true` если в + * радиусе их больше. Участок не найден (нет geom) → 404. + * + * Query params: + * radius_m: радиус поиска, 50–1000 м (default 300). + */ + get: operations["get_parcel_neighbor_buildings_api_v1_parcels__cad_num__neighbor_buildings_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/api/v1/parcels/{cad_num}/isochrones": { parameters: { query?: never; @@ -5808,6 +5845,41 @@ export interface operations { }; }; }; + get_parcel_neighbor_buildings_api_v1_parcels__cad_num__neighbor_buildings_get: { + parameters: { + query?: { + radius_m?: number; + }; + header?: never; + path: { + cad_num: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; get_isochrones_api_v1_parcels__cad_num__isochrones_get: { parameters: { query?: {