o
    e4                     @   sP   d dl T ddlmZmZmZ ddlT ddlT G dd deZG dd deZdS )	    )*   )ListMessagesResponseObjectPlivoResourcePlivoResourceInterfacec                   @   s4   e Zd Zd ZdZdd Zdd Zdd Zdd	 Zd
S )Messagemessage_uuidc                 C   s   | j j| jS )N)clientmessagesgetidself r   K/var/www/html/venv/lib/python3.10/site-packages/plivo/resources/messages.pyr      s   zMessage.getc                 C      t d)Nz Cannot delete a Message resourceInvalidRequestErrorr   r   r   r   delete      zMessage.deletec                 C   r   )Nz Cannot update a Message resourcer   r   r   r   r   update   r   zMessage.updatec                 C   s   | j jdd| jdfd dS )NGETr   Mediaresponse_type)r	   requestr   r   r   r   r   	listMedia   s   zMessage.listMediaN)	__name__
__module____qualname___name_identifier_stringr   r   r   r   r   r   r   r   r   	   s    r   c                
   @   s  e Zd ZeZed8i dee gdee	e
jdgdee	e
jgdeee	e
jedgdee gdee	e
jgd	eeegd
eeegdee	e
jgdeeegdeeegdee	e
j gdee gdee	e
jgdee	e
jgdee	e
jg															d9ddZee	e
jgddd Zed8i dee gdeedgd ee gd!ee gd"ee gd#ee gd$ee gd%eed&gd'eee	e
j ed(d) d*gd+eee	e
j ed,d) d-gd.ee	e
jgd/ee	e
jgd0ee	e
jgd1ee	e
jgd2eee	e
jedgd3ee	e
jgd4eee	e
jed5g																		d:d6d7ZdS );Messagessrcdst<texttype_)smsmmswhatsappurlmethodlog	trackablepowerpack_uuid
media_urls	media_idsmessage_expirytemplatedlt_entity_iddlt_template_iddlt_template_categoryNr(   POSTTFc                 C   s   || dv rtd|d u r|	d u rtd|d ur#|	d ur#td|dkr/|d ur/td|dkr;|d u r;td|d urB|j}| jdd	t| jt S )
Nr%   z2destination number cannot be same as source numberzHSpecify either powerpack_uuid or src in request params to send a messagezzBoth powerpack_uuid and src cannot be specified. Specify either powerpack_uuid or src in request params to send a message.r*   zCTemplate paramater is only applicable when message_type is whatsappzsrc parameter not presentr7   r   )splitValidationError__dict__r	   r   to_param_dictcreatelocals)r   r$   r&   r#   r'   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r   r   r   r=      s2   $
zMessages.create)r   c                 C   s   | j jdd|ftdS )Nr   r   r   )r	   r   r   )r   r   r   r   r   r   Z   s   
zMessages.get
subaccountmessage_direction)inboundoutboundmessage_time__gtmessage_time__gtemessage_time__ltmessage_time__ltemessage_timemessage_state)queuedsentfailed	deliveredundeliveredrejectedreadlimitc                 C   s   d|   k o	dkS   S )Nr      r   )rP   r   r   r   <lambda>p   s    zMessages.<lambda>z0 < limit <= 20offsetc                 C   s   d| kS )Nr   r   )rS   r   r   r   rR   v   s    z0 <= offsetpowerpack_idtendlc_campaign_iddestination_country_iso2tendlc_registration_statusmessage_typeconversation_idconversation_origin)serviceutilityauthentication	marketingc                 C   s    | j jddt| jt ttdS )Nr   r8   )r   objects_type)r	   r   r<   listr>   r   r   )r   r?   r@   rC   rD   rE   rF   rG   rH   rP   rS   
error_coderT   rU   rV   rW   rX   rY   rZ   r   r   r   r`   _   s   7zMessages.listr   )NNr(   Nr7   TFNNNNNNNN)NNNNNNNNNNNNNNNNNN)r   r   r   r   _resource_typevalidate_argsoptionalis_phonenumberis_iterableof_typesix	text_typeall_ofis_inis_urlof_type_exactboolr`   integer_typesis_templater=   r   is_subaccountis_valid_datecheckr   r   r   r   r"      s    	
)
	 $r"   N)	plivo.utils.validatorsbaser   r   r   
exceptionsutilsr   r"   r   r   r   r   <module>   s   