from typing import Dict, List, Union from database import dbname notesdb = dbname["notes"] async def _get_notes(chat_id: int) -> Dict[str, int]: _notes = await notesdb.find_one({"chat_id": chat_id}) return _notes["notes"] if _notes else {} async def delete_note(chat_id: int, name: str) -> bool: notesd = await _get_notes(chat_id) name = name.lower().strip() if name in notesd: del notesd[name] await notesdb.update_one( {"chat_id": chat_id}, {"$set": {"notes": notesd}}, upsert=True, ) return True return False async def get_note(chat_id: int, name: str) -> Union[bool, dict]: name = name.lower().strip() _notes = await _get_notes(chat_id) return _notes[name] if name in _notes else False async def get_note_names(chat_id: int) -> List[str]: return list(await _get_notes(chat_id)) async def save_note(chat_id: int, name: str, note: dict): name = name.lower().strip() _notes = await _get_notes(chat_id) _notes[name] = note await notesdb.update_one( {"chat_id": chat_id}, {"$set": {"notes": _notes}}, upsert=True )