From 45a5acd45dfa657e6e4200f190a06ebc8b24ac3e Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 15 May 2026 11:46:48 -0400 Subject: [PATCH] feat(site_domain): restore convenience fields to Site_Domain_Base Add account_name, account_code, account_enable, account_enable_from/to, site_enable_from/to, site_domain_access_key, logo_path, style_href, script_src, and google_tracking_id to Site_Domain_Base. These fields were present in Site_Domain_FQDN_ID_Base but were lost during the v1/v2 -> v3 migration. The v_site_domain view already provides them via JOINs, so no DB changes are required. --- app/models/site_domain_models.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/app/models/site_domain_models.py b/app/models/site_domain_models.py index 391978b..ec4d5a0 100644 --- a/app/models/site_domain_models.py +++ b/app/models/site_domain_models.py @@ -42,6 +42,23 @@ class Site_Domain_Base(BaseModel): created_on: Optional[datetime.datetime] = None updated_on: Optional[datetime.datetime] = None + # Convenience fields from v_site_domain view (joined from account/site) + account_code: Optional[str] = None + account_name: Optional[str] = None + account_enable: Optional[bool] = None + account_enable_from: Optional[datetime.datetime] = None + account_enable_to: Optional[datetime.datetime] = None + + site_enable_from: Optional[datetime.datetime] = None + site_enable_to: Optional[datetime.datetime] = None + site_domain_access_key: Optional[str] = None + + logo_path: Optional[str] = None + style_href: Optional[str] = None + script_src: Optional[str] = None + + google_tracking_id: Optional[str] = None + _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) @root_validator(pre=True) @@ -55,18 +72,18 @@ class Site_Domain_Base(BaseModel): if rid := values.get('id_random') or values.get('site_domain_id_random'): values['id'] = rid values['site_domain_id'] = rid - + if s_rid := values.get('site_id_random'): values['site_id'] = s_rid - + if a_rid := values.get('account_id_random'): values['account_id'] = a_rid - + # 2. Prevent "Collision Population" for k in ['id', 'site_id', 'account_id']: if k in values and not isinstance(values[k], str): del values[k] - + return values class Config: @@ -98,7 +115,7 @@ class Site_Domain_FQDN_ID_Base(BaseModel): enable: Optional[bool] hide: Optional[bool] = None - + notes: Optional[str] = None created_on: Optional[datetime.datetime] = None updated_on: Optional[datetime.datetime] = None @@ -133,7 +150,7 @@ class Site_Domain_FQDN_ID_Base(BaseModel): values['site_id'] = s_rid if a_rid := values.get('account_id_random'): values['account_id'] = a_rid - + for k in ['id', 'site_id', 'account_id']: if k in values and not isinstance(values[k], str): del values[k]