a
    bg
                     @   st   d dl Z d dlmZ d dlmZmZmZ d dlmZ d dl	m
Z
mZ d dlmZ G dd de
ZG d	d
 d
eZdS )    N)EmailMessage)ListOptionalType)CallbackManagerForToolRun)	BaseModelField)GmailBaseToolc                   @   s   e Zd ZU dZedddZeed< edddZe	e ed< edddZ
eed	< ed
ddZee	e  ed< ed
ddZee	e  ed< d
S )CreateDraftSchemazInput for CreateDraftTool..z$The message to include in the draft.)descriptionmessagezThe list of recipients.tozThe subject of the message.subjectNzThe list of CC recipients.cczThe list of BCC recipients.bcc)__name__
__module____qualname____doc__r   r   str__annotations__r   r   r   r   r   r    r   r   z/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/tools/gmail/create_draft.pyr
      s*   
r
   c                	   @   s   e Zd ZU dZdZeed< dZeed< eZ	e
e ed< deee eeee  eee  edd	d
Zdeee eeee  eee  ee edddZdS )GmailCreateDraftz*Tool that creates a draft email for Gmail.Zcreate_gmail_draftnamezGUse this tool to create a draft email with the provided message fields.r   args_schemaN)r   r   r   r   r   returnc                 C   sp   t  }|| d||d< ||d< |d ur<d||d< |d urRd||d< t|  }dd|iiS )Nz, ToSubjectCcZBccr   raw)r   set_contentjoinbase64urlsafe_b64encodeas_bytesdecode)selfr   r   r   r   r   Zdraft_messageZencoded_messager   r   r   _prepare_draft_message-   s    
z'GmailCreateDraft._prepare_draft_message)r   r   r   r   r   run_managerr   c              
   C   sz   zB|  |||||}| j  jd|d }d|d  }	|	W S  tyt }
 ztd|
 W Y d }
~
n
d }
~
0 0 d S )Nme)ZuserIdbodyzDraft created. Draft Id: idzAn error occurred: )r(   Zapi_resourceZusersZdraftscreateexecute	Exception)r'   r   r   r   r   r   r)   Zcreate_messageZdraftoutputer   r   r   _runC   s    	zGmailCreateDraft._run)NN)NNN)r   r   r   r   r   r   r   r   r
   r   r   r   r   dictr(   r   r2   r   r   r   r   r   $   s6   

  

   

r   )r#   email.messager   typingr   r   r   Zlangchain_core.callbacksr   Zpydanticr   r   Z$langchain_community.tools.gmail.baser	   r
   r   r   r   r   r   <module>   s   