import logging
from motor.motor_asyncio import AsyncIOMotorClient

logger = logging.getLogger(__name__)

class Database:
    def __init__(self):
        self.client = None
        self.db = None

    async def connect(self):
        # Yahan se import karein taaki validation tabhi ho jab connect call ho
        from app.config.Config import settings
        try:
            self.client = AsyncIOMotorClient(
                settings.MONGO_URL,
                serverSelectionTimeoutMS=settings.DB_TIMEOUT
            )
            await self.client.admin.command('ping')
            self.db = self.client[settings.DATABASE_NAME]
            logger.info("Connected to MongoDB successfully.")
        except Exception as e:
            logger.error(f"Could not connect to MongoDB: {e}")
            raise e

    async def close(self):
        if self.client:
            self.client.close()
            logger.info("MongoDB connection closed.")

db_manager = Database()