o
    Q?h"                     @   sT   d dl m Z  d dlmZmZ d dlmZmZmZ d dlm	Z	 d dl
mZ dd ZdS )	    )datetime)SERVER_TIMESTAMPdb)convertProductconvertPropertyconvertVariant)saveManualProduct)	API_Errorc           &         s  |  d}| d| d}}|  d}| d}|  d}|  d}| d}| d	}	| d
d}
g }g }g }g }| dd}g }d\}}g }g }dt| d  |   dd|  d |   d}dkrt|   di }|
dkr|r| D ]\}| fdd| D  qn8| D ]3\}}| D ]*\}}|t| d| d| | d|| d| d| d| dd	 qq|s|s|   d}|r| d}| d }| fd!dD  d"d# |D }|r|rz| |g }W n   Y n|rt| d ng }d$d |D }|D ]ŉz
t dd}W n t	yB } zt
d%d }~ww  d&tt  }|sVt
d'd(|v r_t
d)||v rht
d*||  d	}	|d<  d+ d,}s| d-|| d- | d.}fd/d|D } | sfd0d|D } t||td1 dtd2 d3g||  dd4}!t|| d| || d5||	d6}"||!|"f || q%t|dd| |ttt  |r |nt|| d7| d| d8tt| d9g |d:}ttt||d;tt|| d<d=|	|td>}#||d?< ||d< |#|d@< ||d< |
|d
< t||}$|$|d< |D ]tdA|$dBtd(dCt| dD qQ|D ]| }%tdA|$dE|% qs|S )FNcurrentUseruidenterpriseIdproductproductDetailsselectedBlankNicknamesplacementDetails
variationsdecorationType	printType1price
   )NNcolorr   variantTypepreviewImagescanvasImages0c                    sT   g | ]&\}}| d | d| | d| d| d| d| d d	qS )idurlimageConfigsproductTypesmallerImageUrlname)	r   r   	placementblankProductIdr   r   r    r   r!   get).0r"   i)blankr    O/var/www/html/riverr-enterprise-integrations-main/functions/products/Mapping.py
<listcomp>)   s    z5manualProductWithPlacementDetails.<locals>.<listcomp>r   r   r   r   r    r!   )	r   r   r"   r#   r   sizer   r    r!   defaultPreviewr"   	variationc                    s0   g | ]   fd d    D dqS )c              	      s,   g | ]\}}| | d | ddqS )r   r   )r"   r#   r   r   r   r$   )r&   kr'   )r(   pr)   r*   r+   \   s    z@manualProductWithPlacementDetails.<locals>.<listcomp>.<listcomp>)r#   r   images)items)r&   )r(   r   )r0   r*   r+   Y   s    

c                 S   s   i | ]}| d | dqS )r   r1   r$   )r&   r0   r)   r)   r*   
<dictcomp>f   s    z5manualProductWithPlacementDetails.<locals>.<dictcomp>c                 S   s   g | ]}| d qS )r   r$   r&   r'   r)   r)   r*   r+   k   s    z:Price should be valid number. Remove any currency symbols.skuzSKU is required./zSKU should not contain '/'.z$SKU must be unique for each variant.blankIdvariantr#   
svgOutlinec                    s2   g | ]}| d  kr|  kr|qS )r#   r$   r4   )r#   r   r.   r)   r*   r+      s   2 c                    s,   g | ]}| d  kr| dkr|qS )r#   defaultr$   r4   )r#   r   r)   r*   r+      s   , ColorSizer,   )r   r   
propertiesr5   r1   gtin)r   r#   blankVariantIdr1   r5   r>   r9   r   titledescriptiontags)r   
platformIdshopIdr   platformProductIdr   r!   rA   	createdAt	updatedAtrB   r1   FprintOnDemandT)blankProductIdsr   ignoredimageIdsrH   r   r   rG   skusproductMappingmanualProductscolorImages-)r1   
placements)r%   listkeysdictr2   extendappendvaluesfloat	Exceptionr	   strr   now	timestampr   r   r   intminr   setr   r   
collectiondocumentreplace)&paramsr
   r   r   r   r   r   r   r   r   r   variantsrI   doneSKUspricesr   pImagesdefaultPlacementdefaultVariationprimaryImagesr   thisCanvasImagesprintImagesr,   r0   r'   r-   rK   er5   mappingr9   r1   convertedVariantvariantMappingrM   r   placementDetailr)   )r(   r#   r   r   r   r.   r*   !manualProductWithPlacementDetails	   s  























<&rr   N)r   configs.firebaser   r   functions.Productsr   r   r    functions.products.ManualProductr   functions.Responser	   rr   r)   r)   r)   r*   <module>   s    