o
    `f	                     @   s.   d dl mZ G dd deZG dd dZdS )    )Enumc                   @   s   e Zd ZdZdZdZdS )	IndexTypez,Enum of the currently supported index types.      N)__name__
__module____qualname____doc__HASHJSON r   r   ^/home/ubuntu/webapp/venv/lib/python3.10/site-packages/redis/commands/search/indexDefinition.pyr      s    r   c                   @   sZ   e Zd ZdZg dddddddfddZdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dS )IndexDefinitionzgIndexDefinition is used to define a index definition for automatic
    indexing on Hash or Json update.Ng      ?c	           	      C   sJ   g | _ | | | | | | | || | || | | d S )N)args_append_index_type_append_prefix_append_filter_append_language_append_score_append_payload)	selfprefixfilterlanguage_fieldlanguagescore_fieldscorepayload_field
index_typer   r   r   __init__   s   


zIndexDefinition.__init__c                 C   sZ   |t ju r| jddg dS |t ju r| jddg dS |dur+tdtt  dS )z4Append `ON HASH` or `ON JSON` according to the enum.ONr
   r   Nzindex_type must be one of )r   r
   r   extendr   RuntimeErrorlist)r   r   r   r   r   r   "   s   

z"IndexDefinition._append_index_typec                 C   sF   t |dkr| jd | jt | |D ]
}| j| qdS dS )zAppend PREFIX.r   PREFIXN)lenr   append)r   r   pr   r   r   r   +   s   zIndexDefinition._append_prefixc                 C   (   |dur| j d | j | dS dS )zAppend FILTER.NFILTERr   r&   )r   r   r   r   r   r   3      zIndexDefinition._append_filterc                 C   H   |dur| j d | j | |dur"| j d | j | dS dS )z#Append LANGUAGE_FIELD and LANGUAGE.NLANGUAGE_FIELDLANGUAGEr*   )r   r   r   r   r   r   r   9      z IndexDefinition._append_languagec                 C   r,   )zAppend SCORE_FIELD and SCORE.NSCORE_FIELDSCOREr*   )r   r   r   r   r   r   r   B   r/   zIndexDefinition._append_scorec                 C   r(   )zAppend PAYLOAD_FIELD.NPAYLOAD_FIELDr*   )r   r   r   r   r   r   K   r+   zIndexDefinition._append_payload)r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r      s"    
			r   N)enumr   r   r   r   r   r   r   <module>   s    