o
    Zh
                     @   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.)defaultr   cczThe list of BCC recipients.bcc)__name__
__module____qualname____doc__r   r   str__annotations__r   r   r   r   r   r    r   r   d/var/www/html/lang_env/lib/python3.10/site-packages/langchain_google_community/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ded	ee d
edeee  deee  defddZ			dded	ee d
edeee  deee  dee def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_schemaNr   r   r   r   r   returnc                 C   sp   t  }|| d||d< ||d< |d urd||d< |d ur)d||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run_managerc              
   C   sj   z!|  |||||}| j  jd|d }d|d  }	|	W S  ty4 }
 ztd|
 d }
~
ww )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   r3   r   r   r   r   r   $   sN   
 





r   )r$   email.messager   typingr   r   r   Zlangchain_core.callbacksr   Zpydanticr   r   Z%langchain_google_community.gmail.baser	   r
   r   r   r   r   r   <module>   s    