fix(site-finder): dedupe competitors — same domrf_kn_objects 3x snapshots bug

This commit is contained in:
lekss361 2026-05-11 19:04:29 +03:00
parent 3aeda297ee
commit a7d7dc9667

View file

@ -177,10 +177,18 @@ def analyze_parcel(
}
)
# 5) Конкуренты в радиусе 3 км из DOM.РФ
# 5) Конкуренты в радиусе 3 км из DOM.РФ.
# NB: domrf_kn_objects имеет ~3 snapshot per obj_id → DISTINCT ON по
# latest snapshot, иначе дубликаты ЖК в выдаче.
competitor_rows = (
db.execute(
text("""
WITH latest_obj AS (
SELECT DISTINCT ON (obj_id) *
FROM domrf_kn_objects
WHERE latitude IS NOT NULL
ORDER BY obj_id, snapshot_date DESC NULLS LAST
)
SELECT obj_id,
comm_name,
dev_name,
@ -191,9 +199,8 @@ def analyze_parcel(
ST_SetSRID(ST_MakePoint(o.longitude, o.latitude), 4326)::geography,
ST_Centroid(ST_GeomFromText(:wkt, 4326))::geography
) AS distance_m
FROM domrf_kn_objects o
WHERE o.latitude IS NOT NULL
AND ST_DWithin(
FROM latest_obj o
WHERE ST_DWithin(
ST_SetSRID(ST_MakePoint(o.longitude, o.latitude), 4326)::geography,
ST_Centroid(ST_GeomFromText(:wkt, 4326))::geography,
3000