o
    Zh                     @   s`   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 )
    )ListOptionalType)CallbackManagerForToolRun)	BaseModelField)O365BaseToolc                   @   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 )SendMessageSchemazInput for SendMessageTool..zThe message body to be sent.)descriptionbodyz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   g/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/tools/office365/send_message.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e defddZdS )O365SendMessagezSend an email in Office 365.Z
send_emailnamez@Use this tool to send an email with the provided message fields.r
   args_schemaNr   r   r   r   r   run_managerreturnc           
      C   sj   | j  }| }||_||_|j| |d ur|j| |d ur)|j| |	  dt
| }	|	S )NzMessage sent: )accountmailboxZnew_messager   r   r   addr   r   sendr   )
selfr   r   r   r   r   r   r   messageoutputr   r   r   _run+   s   

zO365SendMessage._run)NNN)r   r   r   r   r   r   r   r
   r	   r   r   r   r   r   r$   r   r   r   r   r   "   s0   
 


r   N)typingr   r   r   Zlangchain_core.callbacksr   Zpydanticr   r   Z(langchain_community.tools.office365.baser   r	   r   r   r   r   r   <module>   s    