def _create_file_entity(
        self, entry: Dict, folder_breadcrumbs: List[Breadcrumb]
    ) -> DropboxFileEntity:
        """Create a DropboxFileEntity from an API response entry.

        Args:
            entry: The file entry from the Dropbox API
            folder_breadcrumbs: List of breadcrumbs for the parent folders

        Returns:
            A DropboxFileEntity populated with data from the API
        """
        import json

        file_id = entry.get("id", "")
        file_path = entry.get("path_lower", "")

        # Parse timestamps if available
        client_modified = None
        server_modified = None

        if entry.get("client_modified"):
            try:
                from datetime import datetime

                client_modified = datetime.strptime(
                    entry.get("client_modified"), "%Y-%m-%dT%H:%M:%SZ"
                )
            except (ValueError, TypeError):
                pass

        if entry.get("server_modified"):
            try:
                from datetime import datetime

                server_modified = datetime.strptime(
                    entry.get("server_modified"), "%Y-%m-%dT%H:%M:%SZ"
                )
            except (ValueError, TypeError):
                pass

        # Extract sharing info
        sharing_info = entry.get("sharing_info", {})

        # Create custom headers that will be needed for Dropbox download
        # These will be stored in sync_metadata and used during file download
        dropbox_api_arg = json.dumps({"path": file_path})

        return DropboxFileEntity(
            # Required fields from ChunkEntity
            entity_id=file_id if file_id else f"file-{file_path}",
            breadcrumbs=folder_breadcrumbs,
            # Required fields from FileEntity
            file_id=file_id if file_id else f"file-{file_path}",
            name=entry.get("name", "Unknown File"),
            download_url="https://content.dropboxapi.com/2/files/download",
            # Store download headers as metadata
            sync_metadata={
                "headers": {"Dropbox-API-Arg": dropbox_api_arg},
                "method": "POST",  # Dropbox requires POST for download
            },
            # Optional fields from FileEntity
            mime_type=None,  # Not directly provided by Dropbox API
            size=entry.get("size"),
            # Dropbox-specific fields - ALL OPTIONAL
            path_lower=entry.get("path_lower"),
            path_display=entry.get("path_display"),
            rev=entry.get("rev"),
            client_modified=client_modified,
            server_modified=server_modified,
            is_downloadable=entry.get("is_downloadable", True),
            content_hash=entry.get("content_hash"),
            # Additional optional fields
            sharing_info=sharing_info,
            has_explicit_shared_members=entry.get("has_explicit_shared_members"),
        )
Create a DropboxFileEntity from an API response entry.

        Args:
            entry: The file entry from the Dropbox API
            folder_breadcrumbs: List of breadcrumbs for the parent folders

        Returns:
            A DropboxFileEntity populated with data from the API
        
backend/airweave/platform/sources/dropbox.py