Spaces:
Running
Running
| """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 | |