
    =h                         d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	Z	 e         G d d      Z
 e	j                  d      Z ee      Z ed	d	e
      Z e       Zy)    )MongoClient)load_dotenv)create_engine)sessionmakerdeclarative_baseNc                   4     e Zd ZdZ fdZdefdZd Z xZS )DatabaseManagerNc                 <   | j                   t        t        |   |       | _         t	        j
                  d      }t	        j
                  d      }t        |      | j                   _        | j                   j                  |   | j                   _        | j                   S )NMONGODB_URLMONGODB_DB_NAME)		_instancesuperr	   __new__osgetenvr   clientdb)clsmongodb_urldb_name	__class__s      @/var/www/html/phonemate/phone_mate_backend/app/utils/database.pyr   zDatabaseManager.__new__   ss    == !/3?DCM))M2Kii 12G#.{#;CMM "}}33G<CMM}}    collection_namec                      | j                   |   S N)r   )selfr   s     r   get_collectionzDatabaseManager.get_collection   s    ww''r   c                 8    | j                   j                          y r   )r   close)r   s    r   r    zDatabaseManager.close   s    r   )	__name__
__module____qualname__r   r   strr   r    __classcell__)r   s   @r   r	   r	   	   s    I(c (r   r	   DB_URLF)
autocommit	autoflushbind)pymongor   dotenvr   
sqlalchemyr   sqlalchemy.ormr   r   r   r	   r   SQLALCHEMY_DATABASE_URLengineSessionLocalBase r   r   <module>r3      sW      $ 9 	  ( $"))H- 	.	/uFKr   