import pymongo
from django.conf import settings

class MongoDBConnection:
    def __init__(self, alias='mongodb'):
        self.alias = alias
        self.mongo_client = None

    def connect(self):
        # Configure MongoDB connection using settings
        self.mongo_settings = settings.DATABASES[self.alias]['CLIENT']
        self.mongo_client = pymongo.MongoClient(
            host=self.mongo_settings['host'],
            port=self.mongo_settings['port'],
            username=self.mongo_settings['username'],
            password=self.mongo_settings['password'],
            authSource=self.mongo_settings['authSource'],
            authMechanism=self.mongo_settings['authMechanism'],
        )
        return self.mongo_client

    def get_db(self):
        if not self.mongo_client:
            self.connect()
        db = self.mongo_client[settings.DATABASES[self.alias]['NAME']]
        return db

    def close(self):
        if self.mongo_client:
            self.mongo_client.close()
