o
    ̿Si                     @   s   d dl m Z  d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZ d dlmZ dZd	Zd
e
dejdefddZdedededededejdedefddZdedejdefddZdedededejdef
ddZdedejdefddZdS )     )datetime)DuplicateKeyError)database)
send_email)str_to_objectid)PartnerCreatePartnerUpdatePartnerPartners)Userpartnersuserspartnerdbreturnc              
   C   s   |   }t |d< |t }z||}W n$ ty9 } zdt|v r'tddt|v r1tdtdd }~ww d}d| j d	}t	||| j
 t|j|d
< |d
 |d< |S )Ncreated_dateemailz'Partner with this email already exists.mobilez/Partner with this mobile number already exists.zDuplicate key error.z#Your Organization has been created!zHello zQ,

Thank you for signing up for our platform. We're excited to have you on board!_id
partner_id)dictr   utcnowCOLLECTION_NAME
insert_oner   str
ValueErrornamer   r   inserted_id)r   r   partner_datapartners_collectionresultesubjectbody r$   ;/var/www/html/Trade-python/app/v1/services/saas/partners.pycreate_partner_service   s&   r&   skiplimitqpartner_type	is_activecurrent_userc                 C   s  |t  }|dddkr|dddkrtdi }|r1|dd}	d|	id	|	id
|	id|	ig|d< |r7||d< |d ur?||d< ||| |}
g }|
D ]*}t|d |d< t|d |d< d|v rst|d trs|d 	 |d< |
| qN||}||dS )Nrolesr         zNot permitted to view partners.i)z$regexz$optionspartner_namer   countrycityz$orr*   r+   r   idr   r   )total_countr   )r   getr   findr'   r(   r   
isinstancer   	isoformatappendcount_documents)r'   r(   r)   r*   r+   r   r,   
collectionqueryregex_querypartners_cursorpartners_listr   r5   r$   r$   r%   get_partners_service*   s2   	 


rA   r   c                 C   s>   |t  }|dt| i}|rt|d |d< |d |d< |S )Nr   r   )r   find_oner   r   r   r   r<   r   r$   r$   r%   get_partner_serviceW   s   rD   partner_updatec                 C   s
  |t  }|t }|dt| i}|std|d|d i}|s&tdt|d| kr3td|jdhd}|dd  |dd	krS|	dt| id
|i |j
|jd}	|	d|d id
|	i |dt| i}
|
rt|
d |
d< |
d |
d< |
S td)Nr   Partner not foundzUser not foundr   z%Not authorized to update this partneruser_id)excluder-      z$set)r   r   zPartner not found after update)r   USER_COLLECTION_NAMErB   r   r   r   r6   r   pop
update_oner   r   )r   rE   r,   r   r   users_collectionexisting_partneruser_documentpartner_updatesuser_update_dataupdated_partnerr$   r$   r%   update_partner_service_   s,   rS   c                 C   sX   |t  }|dt| i}|std|dt| i t|d |d< |d |d< |S )Nr   rF   r   )r   rB   r   r   
delete_oner   rC   r$   r$   r%   delete_partner_service   s   rU   N)r   pymongo.errorsr   app.dbr   app.v1.integrations.SMTPmailerr   app.v1.libraries.objectr   app.v1.models.saas.partnersr   r   r	   r
   app.v1.models.saas.usersmodelr   r   rJ   MongoDBr   r&   intr   boolrA   rD   rS   rU   r$   r$   r$   r%   <module>   sP    
-
(