
    pfg_
                           G d  d          Z dS )c                   >    e Zd ZddZd Zd ZddZddZd Zd	 Z	d
S )Productactivec                 v    || _         || _        || _        || _        || _        g | _        g | _        g | _        d S )N)title	body_htmlvendorproduct_typestatusoptionsvariants
metafields)selfr   descriptionr   r	   r
   s         0/var/www/sites/Harken/General/Product/product.py__init__zProduct.__init__   s?    
$(    c                 l    |                      |          s| j                            d|i           d S d S )Nname)option_existsr   appendr   option_names     r   
add_optionzProduct.add_option   sC    !!+.. 	7L 566666	7 	7r   c                     t          |t                    r2|                    dg            | j                            |           d S t          d          )Nr   u&   La variante doit être un dictionnaire)
isinstancedict
setdefaultr   r   
ValueError)r   variants     r   add_variantzProduct.add_variant   sV    gt$$ 	G|R000M  )))))EFFFr   stringc                     t          fd| j        D             d           }|r||d<   ||d<   d S | j                            ||d           d S )Nc              3   L   K   | ]}|d          k    |d         k    |V  dS )	namespacekeyN ).0mfr%   r$   s     r   	<genexpr>z(Product.add_metafield.<locals>.<genexpr>   sD      "u"u"2k?V_C_C_dfgldmqtdtdt2dtdtdtdt"u"ur   valuetyper$   r%   r*   r+   )nextr   r   )r   r$   r%   r*   r+   existing_metafields    ``   r   add_metafieldzProduct.add_metafield   s    !"u"u"u"u"u"u"u"uw{|| 		*/w')-v&&&O""&	$ $     r   c                     d|cxk    rt          | j                  k     r;n n8| j        |         }d|vrg |d<   |d                             ||||d           d S t          d          )N    r   r,   z,L'indice de la variante est hors des limites)lenr   r   
IndexError)r   variant_indexr$   r%   r*   r+   r   s          r   add_variant_metafieldzProduct.add_variant_metafield%   s    2222DM 2 222222mM2G7**(*%L!((&	* *      KLLLr   c           
      l    d| j         | j        | j        | j        | j        | j        | j        | j        diS )Nproductr   r   r   r
   r   r   r	   r   r8   )r   s    r   to_data_array_without_imagesz$Product.to_data_array_without_images5   sB    !^++< M $ 1"o	 	
 	
r   c                 D    t          fd| j        D                       S )Nc              3   0   K   | ]}|d          k    V  dS )r   Nr&   )r'   optionr   s     r   r)   z(Product.option_exists.<locals>.<genexpr>D   s,      LLV6&>[0LLLLLLr   )anyr   r   s    `r   r   zProduct.option_existsC   s(    LLLLt|LLLLLLr   N)r   )r!   )
__name__
__module____qualname__r   r   r    r/   r5   r9   r   r&   r   r   r   r      s           7 7 7G G G   M M M M 
 
 
M M M M Mr   r   N)r   r&   r   r   <module>rA      sK   CM CM CM CM CM CM CM CM CM CMr   