o
    HiP                     @   sH   d dl mZ d dlmZ d dlZedZeej G dd dZ	dS )    )Database)PyMongoErrorN	DBManagerc                   @   sZ   e Zd ZdefddZddededefdd	ZddedefddZ	ddedefddZ
dS )MongoDBManagerdbc                 C   s   || _ td d S )NzUsing injected MongoDB instance)r   loggerinfo)selfr    r
   @/var/www/html/Trade-python/app/v1/services/zerodha/db_manager.py__init__	   s   zMongoDBManager.__init__zerodha_portfoliosuser_idcollection_namereturnc              
   C   sr   z| j | }|d|iddd}|r|dg W S g W S  ty8 } ztd|  g W  Y d }~S d }~ww )Nr   r      )_idholdingsr   zError fetching portfolio: )r   find_onegetr   r   error)r	   r   r   
collection	portfolioer
   r
   r   get_user_portfolio   s   
z!MongoDBManager.get_user_portfoliotrading_signalssignal_datac              
   C   sf   z| j | }||}td|j  |jW S  ty2 } ztd|  W Y d }~d S d }~ww )NzSignal saved with ID: zError saving signal: )r   
insert_oner   r   inserted_idr   r   )r	   r   r   r   resultr   r
   r
   r   save_signal   s   

zMongoDBManager.save_signalorder_executions
order_datac              
   C   sj   z| j | }||}td|d  |jW S  ty4 } ztd|  W Y d }~d S d }~ww )NzExecution log saved for order: order_idzError saving execution log: )r   r   r   r   r   r   r   r   )r	   r"   r   r   r   r   r
   r
   r   save_execution_log   s   

z!MongoDBManager.save_execution_logN)r   )r   )r!   )__name__
__module____qualname__r   r   strlistr   dictr    r$   r
   r
   r
   r   r      s
    		r   )
pymongo.databaser   pymongo.errorsr   logging	getLoggerr   setLevelINFOr   r
   r
   r
   r   <module>   s    
