"""MongoDB connection and initialization.""" from motor.motor_asyncio import AsyncIOMotorClient, AsyncIOMotorDatabase from backend.core.config import settings _client: AsyncIOMotorClient | None = None _db: AsyncIOMotorDatabase | None = None async def connect_db() -> None: """Initialize MongoDB connection.""" global _client, _db _client = AsyncIOMotorClient(settings.mongodb_url) _db = _client[settings.mongodb_database] # Create indexes await _db.analysis_history.create_index("created_at") await _db.analysis_history.create_index("verdict") print(f"[OK] Connected to MongoDB: {settings.mongodb_database}") async def close_db() -> None: """Close MongoDB connection.""" global _client if _client: _client.close() print("[OK] Closed MongoDB connection") def get_db() -> AsyncIOMotorDatabase: """Get database instance.""" if _db is None: raise RuntimeError("Database not initialized. Call connect_db() first.") return _db