diff --git a/backend/app/db/models/hubspot_deal_data.py b/backend/app/db/models/hubspot_deal_data.py index 48a6f1ba0..036610340 100644 --- a/backend/app/db/models/hubspot_deal_data.py +++ b/backend/app/db/models/hubspot_deal_data.py @@ -71,6 +71,10 @@ class HubspotDealData(SQLModel, table=True): confirmed_survey_time: Optional[str] = Field(default=None) surveyed_date: Optional[datetime] = Field(default=None) design_type: Optional[str] = Field(default=None) + # OpenHousing job number; HubSpot property ID is client_booking_reference. + # Column is created by a drizzle migration in the TS frontend repo, which + # must deploy before this model change (issue #1478). + job_no: Optional[str] = Field(default=None) survey_type: Optional[str] = Field(default=None) measures_for_pibi_ordered: Optional[str] = Field(default=None) diff --git a/etl/hubspot/tests/test_hubspot_deal_differ.py b/etl/hubspot/tests/test_hubspot_deal_differ.py index c3e24e08f..5e9bcfdfa 100644 --- a/etl/hubspot/tests/test_hubspot_deal_differ.py +++ b/etl/hubspot/tests/test_hubspot_deal_differ.py @@ -1226,3 +1226,55 @@ def test_db_update_trigger__listing_changed__returns_true() -> None: ) assert result is True + + +def test_db_update_trigger__client_booking_reference_changed__returns_true() -> None: + deal_id = uuid.uuid4() + + # Arrange + old_deal = make_old_deal( + id=deal_id, + job_no=None, + ) + new_deal = make_new_deal( + deal_id, + hs_object_id="1", + client_booking_reference="AD0226519", + ) + + # Act + result = HubspotDealDiffer.check_for_db_update_trigger( + new_deal=new_deal, + new_company=None, + new_listing=None, + old_deal=old_deal, + ) + + # Assert + assert result is True + + +def test_db_update_trigger__client_booking_reference_unchanged__returns_false() -> None: + deal_id = uuid.uuid4() + + # Arrange + old_deal = make_old_deal( + id=deal_id, + job_no="AD0226519", + ) + new_deal = make_new_deal( + deal_id, + hs_object_id="1", + client_booking_reference="AD0226519", + ) + + # Act + result = HubspotDealDiffer.check_for_db_update_trigger( + new_deal=new_deal, + new_company=None, + new_listing=None, + old_deal=old_deal, + ) + + # Assert + assert result is False