Model/backend/pashub_fetcher/pashub_to_ara_trigger_request.py
2026-05-15 10:58:42 +00:00

22 lines
747 B
Python

import re
from typing import Optional
from pydantic import BaseModel
class PashubToAraTriggerRequest(BaseModel):
pashub_link: str # e.g. https://pashub.net/jobs/{id}/details, /jobs/{id}/evidence/view, /jobs/{id}
address: Optional[str] = None
sharepoint_link: Optional[str] = None
uprn: Optional[str] = None
landlord_property_id: Optional[str] = None
deal_stage: Optional[str] = None
hubspot_listing_id: Optional[int] = None
hubspot_deal_id: Optional[str] = None
@property
def pashub_job_id(self) -> str:
match = re.search(r"/jobs/([^/]+)", self.pashub_link)
if not match:
raise ValueError(f"No job ID found in PasHub link: {self.pashub_link}")
return match.group(1)