Fix: Same-building detection using correct API field names
The same-building detection was failing because the code was accessing deal.street_name and deal.house_number (Pydantic model field names), but the Govmap API actually returns streetNameHeb/streetNameEng and houseNum as extra fields. Modified address construction to check multiple field names using getattr() to handle the API's actual field names, falling back to model field names if needed. This fix ensures same-building deals are correctly identified and prioritized with priority=0. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -718,9 +718,17 @@ class GovmapClient:
|
|||||||
deal.distance_meters = round(deal_distance, 1)
|
deal.distance_meters = round(deal_distance, 1)
|
||||||
|
|
||||||
# Check if this is from the same building
|
# Check if this is from the same building
|
||||||
# Construct address from model fields
|
# Construct address from model fields (try multiple field names)
|
||||||
street = deal.street_name or ""
|
# API returns streetNameHeb/streetNameEng and houseNum
|
||||||
house_num = str(deal.house_number or "")
|
street = (
|
||||||
|
getattr(deal, "streetNameHeb", None)
|
||||||
|
or getattr(deal, "streetNameEng", None)
|
||||||
|
or deal.street_name
|
||||||
|
or ""
|
||||||
|
)
|
||||||
|
house_num = str(
|
||||||
|
getattr(deal, "houseNum", None) or deal.house_number or ""
|
||||||
|
)
|
||||||
deal_address = f"{street} {house_num}".lower().strip()
|
deal_address = f"{street} {house_num}".lower().strip()
|
||||||
if self._is_same_building(search_address_normalized, deal_address):
|
if self._is_same_building(search_address_normalized, deal_address):
|
||||||
deal.deal_source = "same_building"
|
deal.deal_source = "same_building"
|
||||||
|
|||||||
Reference in New Issue
Block a user