from datetime import datetime, timezone from typing import Optional def parse_hs_date(value: Optional[str]) -> Optional[datetime]: if not value: return None try: dt = datetime.fromisoformat(value.replace("Z", "+00:00")) if dt.tzinfo is None: return dt.replace(tzinfo=timezone.utc) return dt.astimezone(timezone.utc) except ValueError: return None def parse_hs_bool(value: Optional[str]) -> Optional[bool]: if value is None or value == "": return None if isinstance(value, bool): return value return str(value).strip().lower() == "true"