From 8daddf6cb7a458cff5c89a8d14c680916800850e Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Thu, 6 Nov 2025 12:47:40 +0000 Subject: [PATCH] hubspot update script improved --- ...8de4_added_major_condition_issue_things.py | 34 +++++++++++++++++++ etl/db/hubSpotLoad.py | 9 +++++ etl/hubSpotClient/hubspotClient.py | 4 ++- etl/models/topLevel.py | 3 ++ migration_db.sh | 2 +- 5 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 alembic/versions/ed6aaa298de4_added_major_condition_issue_things.py diff --git a/alembic/versions/ed6aaa298de4_added_major_condition_issue_things.py b/alembic/versions/ed6aaa298de4_added_major_condition_issue_things.py new file mode 100644 index 0000000..9827798 --- /dev/null +++ b/alembic/versions/ed6aaa298de4_added_major_condition_issue_things.py @@ -0,0 +1,34 @@ +"""added major condition issue things + +Revision ID: ed6aaa298de4 +Revises: 66d2c9c325d6 +Create Date: 2025-11-05 15:03:11.447367 + +""" +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa +import sqlmodel + +# revision identifiers, used by Alembic. +revision: str = 'ed6aaa298de4' +down_revision: Union[str, None] = '66d2c9c325d6' +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + """Upgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('hubspot_deal_data', sa.Column('major_condition_issue_description', sqlmodel.sql.sqltypes.AutoString(), nullable=True)) + op.add_column('hubspot_deal_data', sa.Column('major_condition_issue_photos', sqlmodel.sql.sqltypes.AutoString(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade() -> None: + """Downgrade schema.""" + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('hubspot_deal_data', 'major_condition_issue_photos') + op.drop_column('hubspot_deal_data', 'major_condition_issue_description') + # ### end Alembic commands ### diff --git a/etl/db/hubSpotLoad.py b/etl/db/hubSpotLoad.py index b09e0eb..209a0e5 100644 --- a/etl/db/hubSpotLoad.py +++ b/etl/db/hubSpotLoad.py @@ -56,6 +56,7 @@ class HubspotTodb(): hs_deal, hs_company_id, hs_listing = hubspot_client.get_deal_info_for_db(deal_in_db.deal_id) + results = [ soft_assert(deal_in_db.deal_id == hs_deal.get("hs_object_id"), "deal_id mismatch"), @@ -75,6 +76,10 @@ class HubspotTodb(): "uprn mismatch"), soft_assert(deal_in_db.outcome_notes == hs_deal.get("outcome_notes"), "outcome_notes mismatch"), + soft_assert(deal_in_db.major_condition_issue_description == hs_deal.get("major_condition_issue_description"), + "major condition description mismatch"), + soft_assert(deal_in_db.major_condition_issue_photos == hs_deal.get("major_condition_issue_photos"), + "major condition issue photos mismatch") ] # if any of the soft asserts failed @@ -109,6 +114,8 @@ class HubspotTodb(): existing.outcome_notes = deal_data.get("outcome_notes", existing.outcome_notes) existing.project_code = deal_data.get("project_code", existing.project_code) existing.company_id = company or existing.company_id + existing.major_condition_issue_description = deal_data.get("major_condition_issue_description", existing.major_condition_issue_description) + existing.major_condition_issue_photos = deal_data.get("major_condition_issue_photos", existing.major_condition_issue_photos) session.add(existing) session.commit() @@ -128,6 +135,8 @@ class HubspotTodb(): outcome_notes=deal_data.get("outcome_notes"), project_code=deal_data.get("project_code"), company_id=company, + major_condition_issue_description = deal_data.get("major_condition_issue_description"), + major_condition_issue_photos = deal_data.get("major_condition_issue_photos"), ) session.add(new_record) diff --git a/etl/hubSpotClient/hubspotClient.py b/etl/hubSpotClient/hubspotClient.py index 29a40fa..a913a60 100644 --- a/etl/hubSpotClient/hubspotClient.py +++ b/etl/hubSpotClient/hubspotClient.py @@ -121,7 +121,9 @@ class HubSpotClient(): 'dealstage', 'outcome', #outcome, 'outcome_notes', #outcome notes - 'project_code' + 'project_code', + 'major_condition_issue_description', + 'major_condition_issue_photos', ] ) diff --git a/etl/models/topLevel.py b/etl/models/topLevel.py index 8228d3a..de7139b 100644 --- a/etl/models/topLevel.py +++ b/etl/models/topLevel.py @@ -81,6 +81,9 @@ class HubspotDealData(SQLModel, table=True): outcome: Optional[str] = Field(default=None) outcome_notes: Optional[str] = Field(default=None) + major_condition_issue_description: Optional[str] = Field(default=None) + major_condition_issue_photos: Optional[str] = Field(default=None) + created_at: datetime = Field( sa_column=Column( DateTime(timezone=True), diff --git a/migration_db.sh b/migration_db.sh index 5c596d4..1443b18 100644 --- a/migration_db.sh +++ b/migration_db.sh @@ -1,4 +1,4 @@ -#poetry run alembic revision --autogenerate -m "auto update" +#poetry run alembic revision --autogenerate -m "added major condition issue things" poetry run alembic upgrade head