diff --git a/tradein-mvp/backend/app/services/estimator.py b/tradein-mvp/backend/app/services/estimator.py index 4e2fc03e..580593d0 100644 --- a/tradein-mvp/backend/app/services/estimator.py +++ b/tradein-mvp/backend/app/services/estimator.py @@ -881,13 +881,13 @@ def _fetch_analogs( -- без типа → PostgreSQL "could not determine data type of parameter" -- (AmbiguousParameter). Явный тип снимает неоднозначность. + CASE - WHEN :target_year IS NOT NULL + WHEN CAST(:target_year AS integer) IS NOT NULL AND year_built IS NOT NULL THEN abs(year_built - CAST(:target_year AS integer)) / 12.0 ELSE 0 END + CASE - WHEN :target_house_type IS NOT NULL + WHEN CAST(:target_house_type AS text) IS NOT NULL AND house_type IS NOT NULL AND house_type <> CAST(:target_house_type AS text) THEN 1.5 @@ -900,13 +900,13 @@ def _fetch_analogs( ST_Distance(geom::geography, ST_MakePoint(:lon, :lat)::geography) / 1000.0 + CASE - WHEN :target_year IS NOT NULL + WHEN CAST(:target_year AS integer) IS NOT NULL AND year_built IS NOT NULL THEN abs(year_built - CAST(:target_year AS integer)) / 12.0 ELSE 0 END + CASE - WHEN :target_house_type IS NOT NULL + WHEN CAST(:target_house_type AS text) IS NOT NULL AND house_type IS NOT NULL AND house_type <> CAST(:target_house_type AS text) THEN 1.5