
    |h0                         S SK JrJr  S SKJr  S SKJr  S SKJr  S SKJ	r	  SSK
JrJr  SrS	\S
\4S jrS\S\S\S\\   S\\   4
S jrS\4S jrS\S\4S jrS\4S jrS rg)    )BackgroundTasksHTTPException)ObjectId)datetime)Optional)str_to_objectid   )CommunicationEmailCreateCommunicationEmailUpdatecommunication_emailpayloadbackground_tasksc                     U[            nU R                  5       n[        R                  " 5       US'   UR	                  U5      n[        UR                  5      US'   U$ )Ncreated_dateid)COLLECTION_NAMEdictr   utcnow
insert_onestrinserted_id)r   r   db
collectiondatainserteds         VC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\services\saas\communication_email.py"create_communication_email_servicer      sQ    O$J<<>D#??,D$$T*HX))*DJK    
account_idskiplimitqaccount_viewc                    U[            n0 nUR                  S5      S:w  d  US:X  a  XS'   SU 0nU(       a  USS.n	SU	0SU	0SU	0S	U	0/US
'   [        UR                  U5      R	                  U5      R                  U5      5      n
UR                  U5      nU
 Hb  n[        US   5      US'   UR                  SS 5        [        UR                  S5      [        5      (       d  ML  US   R                  5       US'   Md     XS.$ )Nroles   r   i)z$regexz$optionsemail_titleemail_to
email_fromstatusz$or_idemail_idr   )total_countemails)r   getlistfindr    r!   count_documentsr   pop
isinstancer   	isoformat)r   r    r!   r"   r#   r   current_userr   queryregexr/   r.   emails                r    get_communication_emails_servicer;      s   O$JE  A%):(l:&E#.E"5!u	
e *//%(--d399%@AF,,U3Ke-j		%eii/::$).$9$C$C$EE.!	  '99r   r-   c                     U[            R                  S[        U 5      05      nU(       a%  [        US   5      US'   UR	                  SS 5        U$ g )Nr,   r-   )r   find_oner   r   r4   )r-   r   r:   s      r    read_communication_email_servicer>   5   sM    ((%1J)KLEe-j		%r   updatec                    U[            nUR                  5       R                  5        VVs0 s H  u  pEUc  M
  XE_M     nnnUR                  S[	        U 5      0SU05      nUR
                  S:X  a
  [        SSS9eUR                  S[	        U 5      05      n[        US   5      US'   UR                  SS 5        U$ s  snnf )Nr,   z$setr     Email record not foundstatus_codedetailr   )
r   r   items
update_oner   matched_countr   r=   r   r4   )	r-   r?   r   r   kvupdate_dataresultupdateds	            r   "update_communication_email_servicerN   >   s    O$J$*KKM$7$7$9K$9DAQ414$9KK""E?8+D#EP[G\]Fq 4LMM!!5/(*C"DEG'GDMKKtN Ls
   	B;B;c                     U[            nUR                  S[        U 5      05      nU(       d
  [        SSS9eUR	                  S[        U 5      05        [        US   5      US'   UR                  SS 5        U$ )Nr,   rA   rB   rC   r   )r   r=   r   r   
delete_oner   r4   )r-   r   r   r:   s       r   "delete_communication_email_servicerQ   M   st    O$J(A BCE4LMM5/(";<=eEl#E$K	IIeTLr   c                     U S   nSSSSS/000SSS	S
0S.0/nUR                  U5      nSSSS.nU H%  nUS   nUS   nXd;   d  M  XtU'   US==   U-  ss'   M'     U$ )Nr   z$matchr+   z$insuccessfailedz$groupz$statusz$sumr&   )r,   countr   )rS   rT   totalr,   rU   rV   )	aggregate)r   r   pipelineresultscountsrL   r+   rU   s           r   get_email_status_countsr[   Y   s    )*J 
Huy(&;<=>	a[
 	H ""8,Ga!4Fw"6N7Ou$O  Mr   N)fastapir   r   bsonr   r   typingr   app.v1.libraries.objectr   models.saas.communication_emailr
   r   r   r   r   intr;   r>   rN   rQ   r[    r   r   <module>rc      s    2    3 a'0H \k : :C : :PXY\P] :muvymz :>s  >V 
 
r   