gendesign/tradein-mvp/backend/data/sql/006_cad_buildings.sql
TradeIn Deploy 9cc8ab96f7 feat(tradein): кадастр зданий как источник house_metadata (#393)
В gendesign-БД есть cad_buildings — ~36к зданий ЕКБ с годом постройки
и этажностью (Росреестр). Подключаем как ПРИОРИТЕТНЫЙ источник
обогащения house_metadata, OSM Overpass остаётся fallback-ом.

- data/sql/006_cad_buildings.sql — таблица cad_buildings в tradein-БД.
- deploy/import-cadastre.sh — ETL: ЕКБ-срез cad_buildings из
  gendesign-postgres → tradein (по образцу import-rosreestr.sh).
- house_metadata._cad_buildings_get — lookup по гео-близости (60 м),
  проверяется ПЕРВЫМ в get_house_metadata, до OSM.

cad_buildings — кадастр ЗДАНИЙ, не квартир: поле ручного ввода кадастра
(исходная идея #393) не делаем — гео-обогащение полезнее и работает
автоматически для каждой оценки.

Closes #393
2026-05-22 10:54:42 +05:00

34 lines
1.7 KiB
PL/PgSQL

-- Trade-In MVP — кадастр зданий ЕКБ (#393).
-- Срез cad_buildings из gendesign-БД (данные Росреестра по зданиям),
-- импортируется ETL-ом deploy/import-cadastre.sh.
-- Основной источник обогащения house_metadata (год / этажность) —
-- данные точнее и полнее, чем OSM Overpass.
BEGIN;
CREATE TABLE IF NOT EXISTS cad_buildings (
cad_num text PRIMARY KEY, -- кадастровый номер здания, 66:41:...
address text,
floors int,
year_built int,
area_m2 numeric(12, 2), -- площадь здания (не квартиры)
purpose text, -- Жилое / Нежилое / Многоквартирный дом
lat double precision,
lon double precision,
geom geometry(Point, 4326),
imported_at timestamptz NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS cad_buildings_geom_idx ON cad_buildings USING GIST (geom);
-- Авто-update geom из (lat, lon) — переиспользуем функцию из 002_core_tables.sql.
DROP TRIGGER IF EXISTS cad_buildings_set_geom_trg ON cad_buildings;
CREATE TRIGGER cad_buildings_set_geom_trg
BEFORE INSERT OR UPDATE OF lat, lon ON cad_buildings
FOR EACH ROW EXECUTE FUNCTION listings_set_geom();
COMMENT ON TABLE cad_buildings IS
'#393 — кадастр зданий ЕКБ (срез cad_buildings из gendesign-БД). '
'Приоритетный источник обогащения house_metadata: год постройки / этажность.';
COMMIT;