async def bulk_delete_by_parent_id(self, parent_id: str, sync_id: str) -> None:
        """Bulk delete entities from Qdrant by parent ID and sync ID.

        This deletes all entities that have the specified parent_entity_id and sync_id.

        Args:
            parent_id (str): The parent ID to delete children for.
            sync_id (str): The sync ID.
        """
        if not parent_id:
            return

        await self.ensure_client_readiness()

        # Ensure sync_id is a string
        sync_id_str = str(sync_id)
        parent_id_str = str(parent_id)

        # Create filter for parent_id and sync_id using the correct Qdrant structure
        filter_condition = {
            "must": [
                {"key": "parent_entity_id", "match": {"value": parent_id_str}},
                {"key": "sync_id", "match": {"value": sync_id_str}},
            ]
        }

        # Use try-except to handle any filter validation errors
        try:
            # Convert dict filter to Qdrant filter format
            qdrant_filter = rest.Filter.model_validate(filter_condition)

            await self.client.delete(
                collection_name=self.collection_name,
                points_selector=rest.FilterSelector(
                    filter=qdrant_filter,
                ),
                wait=True,  # Wait for operation to complete
            )
        except Exception as e:
            logger.error(f"Error creating Qdrant filter: {e}")
            logger.error(f"Filter condition: {filter_condition}")
            # Fallback to a different approach if needed
            raise
Bulk delete entities from Qdrant by parent ID and sync ID.

        This deletes all entities that have the specified parent_entity_id and sync_id.

        Args:
            parent_id (str): The parent ID to delete children for.
            sync_id (str): The sync ID.
        
backend/airweave/platform/destinations/qdrant.py