o
    Q?h	                     @   s   d dl Z d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
 eG dd dZdefd	d
ZeddG dd de	ZeG dd de	ZdS )    N)Fieldasdict	dataclass)db)Image)DocumentDatavalidatec                   @   sF   e Zd ZU eed< eed< dZedB ed< dd Zdd	 Zd
d ZdS )Propertynamevalue Nidc                    s*   i   | di  fddt | D S )Nc                    s"   i | ]}|j t| |j qS  )r
   convertget).0fielddatar   S/var/www/html/riverr-enterprise-integrations-main/V2/functions/Products/Variants.py
<dictcomp>   s    z&Property.from_dict.<locals>.<dictcomp>r   )dataclassesfields)clsr   r   r   r   	from_dict   s   
zProperty.from_dictc                 C   sB   t | D ]}t| |j}t||jkrt| |jt|| qd S N)r   r   getattrr
   typesetattrr   )selfr   r   r   r   r   __post_init__   s
   "zProperty.__post_init__c                 C   s   t | S r   )r   r   r   r   r   to_dict   s   zProperty.to_dict)	__name__
__module____qualname__str__annotations__r   r   r    r"   r   r   r   r   r	   	   s   
 r	   r   c                 C   sF   |d u rd S | j tkrt|S | j tkrt|S | j tkr!t|S |S r   )r   intr&   float)r   r   r   r   r   r      s
   r   T)kw_onlyc                   @   s   e Zd ZU eeB ed< ee ed< dZe	ed< dZ
edB ed< dZedB ed< dZedB ed< eded	efd
dZedefddZdS )Variantprice
propertiesFdeletedNsku	productIdr
   	variantIdc                 C   s<   t d| d|  }|jr| d|ji| S d S )N	products/z
/variants/r   )r   documentr   existsr   r   r"   )r   r0   r1   snapr   r   r   r   .   s   "zVariant.getc                    (   t d| d } fdd|D S )Nr2   z	/variantsc                    s$   g | ]}  d |ji| qS )r   )r   r   r"   r   docr   r   r   
<listcomp>6   s   $ z"Variant.getAll.<locals>.<listcomp>r   
collectionr   r   r0   refr   r9   r   getAll3      zVariant.getAll)r#   r$   r%   r(   r)   r'   listr	   r.   boolr/   r&   r0   r
   classmethodr   r?   r   r   r   r   r+   %   s   
 r+   c                   @   s   e Zd ZU eed< eed< eed< eed< ee ed< ee ed< dZeed< d	Z	eed
< e
dedefddZe
defddZdd ZdS )VariantMappingblankProductIdblankVariantIdr0   r/   images
placementsFignored1decorationTyper1   c                 C   s2   t d| d|  }|jr| | S d S )NproductsMapping/z/variantsMapping/)r   r3   r   r4   r   r"   )r   r0   r1   r>   r   r   r   r   B   s   zVariantMapping.getc                    r6   )NrL   z/variantsMappingc                    s   g | ]	}  | qS r   )r   r"   r7   r9   r   r   r:   K   s    z)VariantMapping.getAll.<locals>.<listcomp>r;   r=   r   r9   r   r?   H   r@   zVariantMapping.getAllc                 C   s   t |  d S r   )r   r!   r   r   r   r    M   s   zVariantMapping.__post_init__N)r#   r$   r%   r&   r'   rA   r   rI   rB   rK   rC   r   r?   r    r   r   r   r   rD   7   s   
 rD   )r   r   r   r   configs.firebaser   V2.functions.Images.mainr   V2.functions.mainr   r   r	   r   r+   rD   r   r   r   r   <module>   s    