Merge pull request #105 from Hestia-Homes/feature/major_condition_issue

hubspot update script improved
This commit is contained in:
Jun-te Kim 2025-11-06 12:48:15 +00:00 committed by GitHub
commit bcca3ed6f6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 50 additions and 2 deletions

View file

@ -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 ###

View file

@ -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)

View file

@ -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',
]
)

View file

@ -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),

View file

@ -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