from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorDatabase from app.core.config import settings _client: AsyncIOMotorClient | None = None _db: AsyncIOMotorDatabase | None = None async def connect_mongo() -> None: global _client, _db _client = AsyncIOMotorClient(settings.mongo_uri) _db = _client[settings.mongo_db] async def close_mongo() -> None: global _client, _db if _client is not None: _client.close() _client = None _db = None def get_db() -> AsyncIOMotorDatabase: if _db is None: raise RuntimeError("MongoDB is not connected") return _db