
    i
                         d dl mZmZ d dlmZmZ d dlmZ  G d de      Z G d de      Z	 G d d	e      Z
 G d
 de      Z G d de      Z G d de      Z G d de      Z G d d      Zy)    )	BaseModelField)ListOptional)MongoClientc                   ,    e Zd ZU eed<   eed<   eed<   y)DesignTemplatewidthheightdpiN)__name__
__module____qualname__float__annotations__int     ./var/www/pod-logistic/pod-api/model/product.pyr	   r	      s    LM	Hr   r	   c                   J    e Zd ZU  edd      Zeed<    edd      Zeed<   y)Color.   
min_lengthnamehexN)r   r   r   r   r   strr   r   r   r   r   r   r      s$    ca(D#(SQ'C'r   r   c                   @    e Zd ZU  edd      Zeed<   dZee   ed<   y)
StyleEntry.r   r   r    	thumbnailN)	r   r   r   r   r   r   r   r!   r   r   r   r   r   r      s!    ca(D#(!Ix}!r   r   c                   h    e Zd ZU dZee   ed<    edd      Zeed<    edd      Z	eed<   e
ed<   y	)
Variantr    color.r   r   stylesizepriceN)r   r   r   r$   r   r   r   r   r%   r&   r   r   r   r   r#   r#      s7    E8C=sq)E3)ca(D#(Lr   r#   c                   T    e Zd ZU eed<   eed<   eed<   dZee   ed<   dZee   ed<   y)	ShippingRateregiontransitTimecostg        	importTaxr    importTaxNoteN)	r   r   r   r   r   r   r-   r   r.   r   r   r   r)   r)      s.    K
K!$Ix$#%M8C=%r   r)   c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)	SizeGuider&   
lengthInch	widthInchlengthCmwidthCmN)r   r   r   r   r   r   r   r   r   r0   r0   %   s    
IONr   r0   c                      e Zd ZU eed<   eed<   eed<   dZee   ed<   eed<   dZee   ed<   dZ	eed	<   d
Z
eed<   ee   ed<   eed<   g Zee   ed<   g Zee   ed<   g Zee   ed<   g Zee   ed<   g Zee   ed<   g Zee   ed<   y)ProductPayloadidtitlecategoryNameNsubCategoryr'   r    descriptionbadgez#3b82f6
badgeColorimagesdesignTemplatesizescolorsstylesvariantsshippingRates	sizeGuide)r   r   r   r   r   r:   r   r   r;   r<   r=   r   r	   r@   rA   r   rB   r   rC   r#   rD   r)   rE   r0   r   r   r   r6   r6   -   s    GJ!%K#%L!#K##E3OJI""E49FDK!FD! Hd7m (*M4%*!#ItI#r   r6   c                   0    e Zd ZdededefdZdedefdZy)	ProductDatabaseModeldb_uridb_namecollection_namec                 t    t        |      | _        | j                  |   | _        | j                  |   | _        y )N)r   clientdb
collection)selfrH   rI   rJ   s       r   __init__zProductDatabaseModel.__init__A   s.    !&)++g&''/2r   product_datareturnc                    |j                  dd      j                         }|j                  dd      j                         }|st        d      | j                  j                  d|i      rt        d      | j                  j                  d|i      rt        d      |j                  dd      xs d|d<   |j                  d	g       xs g |d	<   |j                  d
g       xs g |d
<   |j                  dg       xs g |d<   |j                  dg       xs g |d<   |j                  dg       xs g |d<   d|i|}	 | j                  j                  |      }t        |j                        S # t        $ r t        d      w xY w)Nr7   r    r8   ERR_EMPTY_ID	productIdERR_DUPLICATE_IDERR_DUPLICATE_TITLEr;   rA   rB   rC   rD   rE   ERR_DATABASE_SYSTEM)
popstripget
ValueErrorrN   find_one
insert_oner   inserted_id	Exception)rO   rQ   frontend_idr8   ordered_dataresults         r   insert_productz#ProductDatabaseModel.insert_productF   s   "&&tR0668  "-335^,,??##[+$>?/00??##We$45233&2&6&6}b&I&OR]#!-!1!1(B!?!E2X!-!1!1(B!?!E2X#/#3#3J#C#IrZ (4(8(8"(M(SQS_%$0$4$4["$E$K[! 


	3__//=Fv))** 	3122	3s   ;/E+ +F N)r   r   r   r   rP   dictrd   r   r   r   rG   rG   @   s/    3s 3S 33 3
34 3C 3r   rG   N)pydanticr   r   typingr   r   pymongor   r	   r   r   r#   r)   r0   r6   rG   r   r   r   <module>ri      sl    % ! Y (I (
" "
i &9 &	 $Y $&#3 #3r   