async def _generate_company_entities(
        self, client: httpx.AsyncClient
    ) -> AsyncGenerator[ChunkEntity, None]:
        """Generate Company entities from HubSpot.

        This uses the REST CRM API endpoint for companies:
          GET /crm/v3/objects/companies
        """
        # Get all available properties for companies
        all_properties = await self._get_all_properties(client, "companies")
        properties_param = ",".join(all_properties)

        url = f"https://api.hubapi.com/crm/v3/objects/companies?properties={properties_param}"
        while url:
            data = await self._get_with_auth(client, url)
            for company in data.get("results", []):
                raw_properties = company.get("properties", {})
                # Clean properties to remove null/empty values
                cleaned_properties = self._clean_properties(raw_properties)

                yield HubspotCompanyEntity(
                    entity_id=company["id"],
                    # Core fields for easy access
                    name=cleaned_properties.get("name"),
                    domain=cleaned_properties.get("domain"),
                    # Cleaned properties from HubSpot
                    properties=cleaned_properties,
                    created_at=parse_hubspot_datetime(company.get("createdAt")),
                    updated_at=parse_hubspot_datetime(company.get("updatedAt")),
                    archived=company.get("archived", False),
                )

            paging = data.get("paging", {})
            next_link = paging.get("next", {}).get("link")
            url = next_link if next_link else None
Generate Company entities from HubSpot.

        This uses the REST CRM API endpoint for companies:
          GET /crm/v3/objects/companies
        
backend/airweave/platform/sources/hubspot.py