async def extract_properties(
            page: dict, database_id: str, database_schema: dict
        ) -> List[NotionPropertyEntity]:
            """Extract properties with proper entity creation."""
            # Create notion instance for property formatting
            notion_source = NotionSource()

            page_id = page["id"]
            page_properties = page.get("properties", {})
            schema_properties = database_schema.get("properties", {})

            property_entities = []

            for prop_name, prop_value in page_properties.items():
                if prop_name in schema_properties:
                    schema_prop = schema_properties[prop_name]

                    try:
                        # Use the existing create_property_entity method
                        property_entity = notion_source._create_property_entity(
                            prop_name, prop_value, schema_prop, page_id, database_id
                        )
                        property_entities.append(property_entity)

                    except Exception as e:
                        logger.warning(
                            f"Error processing property {prop_name} for page {page_id}: {str(e)}"
                        )

            return property_entities
Extract properties with proper entity creation.
backend/airweave/platform/sources/notion.py