from abc import ABC from typing import Dict, Optional, List class IDocumentStore(ABC): async def save_to_db(self, collection: str, item: Dict, doc_id: Optional[str] = None) -> Optional[str]: pass async def get_doc_by_id(self, collection: str, doc_id: str) -> Optional[Dict]: pass async def find(self, collection: str, query: Optional[Dict]) -> List[Dict]: pass async def update(self, collection: str, filter_query: Dict, update: Dict) -> Optional[str]: pass