
    h	                         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e
      Z G d	 d
e      Zy)    N)EmailMessage)ListOptionalType)CallbackManagerForToolRun)	BaseModelField)GmailBaseToolc                       e Zd ZU dZ edd      Zeed<    edd      Ze	e   ed<    edd      Z
eed	<    ed
d      Zee	e      ed<    ed
d      Zee	e      ed<   y
)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        j/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/tools/gmail/create_draft.pyr   r      s    $:GS  -BS	  1GS  $0Bc   %1 C$s)	 r   r   c                       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Z	 	 	 dded	ee   d
edeee      deee      dee   defdZy)GmailCreateDraftz*Tool that creates a draft email for Gmail.create_gmail_draftnamezGUse this tool to create a draft email with the provided message fields.r   args_schemaNr   r   r   r   r   returnc                 0   t               }|j                  |       dj                  |      |d<   ||d<   |dj                  |      |d<   |dj                  |      |d<   t        j                  |j                               j                         }dd|iiS )Nz, ToSubjectCcBccr   raw)r   set_contentjoinbase64urlsafe_b64encodeas_bytesdecode)selfr   r   r   r   r   draft_messageencoded_messages           r   _prepare_draft_messagez'GmailCreateDraft._prepare_draft_message-   s     %!!'*"iimd#*i >"&))B-M$?#'99S>M%  22=3I3I3KLSSUE?344r   run_managerc                    	 | j                  |||||      }| j                  j                         j                         j	                  d|      j                         }d|d    }	|	S # t        $ r}
t        d|
       d }
~
ww xY w)Nme)userIdbodyzDraft created. Draft Id: idzAn error occurred: )r1   api_resourceusersdraftscreateexecute	Exception)r.   r   r   r   r   r   r2   create_messagedraftoutputes              r   _runzGmailCreateDraft._runC   s    	7!88"grSVWN!!'')t.9	  1t>FM 	71!566	7s   A%A( (	B1A??B)NN)NNN)r   r   r   r   r   r   r   r   r   r    r   r   r   dictr1   r   rB   r   r   r   r   r   $   s    4$D#$Q   ,=K'(< #'#'55 I5 	5
 T#Y5 d3i 5 
56 #'#';?77 I7 	7
 T#Y7 d3i 7 787 
7r   r   )r*   email.messager   typingr   r   r   langchain_core.callbacksr   pydanticr   r	   $langchain_community.tools.gmail.baser
   r   r   r   r   r   <module>rI      s2     & ' ' > % >	 237} 37r   