Sync third_party_surveyor_identifier deal field from HubSpot

Fetch the property from the HubSpot deals API, persist it on
hubspot_deal_data (column added by the frontend repo's drizzle
migration), and include it in the differ's FIELD_MAP so a change
to the field triggers a DB reload.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Daniel Roth 2026-07-17 12:53:26 +00:00
parent cc185e5d73
commit 80113205c8
4 changed files with 9 additions and 0 deletions

View file

@ -67,6 +67,7 @@ class HubspotDealData(SQLModel, table=True):
lodgement_date: Optional[datetime] = Field(default=None)
expected_commencement_date: Optional[datetime] = Field(default=None)
surveyor: Optional[str] = Field(default=None)
third_party_surveyor_identifier: Optional[str] = Field(default=None)
confirmed_survey_date: Optional[datetime] = Field(default=None)
confirmed_survey_time: Optional[str] = Field(default=None)
surveyed_date: Optional[datetime] = Field(default=None)

View file

@ -291,6 +291,7 @@ class HubspotClient:
"lodgement_date",
"expected_commencement_date",
"surveyor",
"third_party_surveyor_identifier",
"confirmed_survey_date",
"confirmed_survey_time",
"client_booking_reference",

View file

@ -270,6 +270,9 @@ class HubspotDataToDb:
deal_data.get("expected_commencement_date")
),
"surveyor": deal_data.get("surveyor"),
"third_party_surveyor_identifier": deal_data.get(
"third_party_surveyor_identifier"
),
"confirmed_survey_date": parse_hs_date(
deal_data.get("confirmed_survey_date")
),
@ -391,6 +394,9 @@ class HubspotDataToDb:
deal_data.get("expected_commencement_date")
),
surveyor=deal_data.get("surveyor"),
third_party_surveyor_identifier=deal_data.get(
"third_party_surveyor_identifier"
),
confirmed_survey_date=parse_hs_date(deal_data.get("confirmed_survey_date")),
confirmed_survey_time=deal_data.get("confirmed_survey_time"),
client_booking_reference=deal_data.get("client_booking_reference"),

View file

@ -100,6 +100,7 @@ class HubspotDealDiffer:
"lodgement_status": "lodgement_status",
"design_type": "design_type",
"surveyor": "surveyor",
"third_party_surveyor_identifier": "third_party_surveyor_identifier",
"confirmed_survey_time": "confirmed_survey_time",
"client_booking_reference": "client_booking_reference",
"survey_type": "survey_type",