
    eZ                     F   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	m
Z
mZmZmZ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e          ZdS )    )datetime)BaseCategory)Mappedmapped_columnrelationship)String
ForeignKeyDateIntegerDECIMALBooleanFloat)Listc                   *   e Zd ZU dZ e ed          d          Zee         e	d<    e e
                      Zee         e	d<    e e
                      Zee         e	d<    e ed                    Zee         e	d<    e ed                    Zee         e	d	<   ed
efd            Zed
efd            Zed
efd            Z edd          Zeed                  e	d<    e ed                    Zee         e	d<    ed          Zed         e	d<    e ed                    Zee         e	d<    ed          Zed         e	d<    e ed                    Zee         e	d<    ed          Zed         e	d<   d
efd Zd!S )"Articlearticles   Tprimary_keyarticle_numberdelivery_date_fromdelivery_date_tocompositionbrandreturnc                 6    | j                             d          S Nz%d.%m.%Y)r   strftimeselfs    O/Users/daniilossinkin/PycharmProjects/ShopsBackend/src/data/model/db/article.pydate_tozArticle.date_to   s    $--j999    c                 6    | j                             d          S r   )r   r   r    s    r"   	date_fromzArticle.date_from   s    &//
;;;r$   c                 ~    | j         dk    rdS | j         dk    rdS | j         dk    rdS t          d| j                    )z`
        brand designation according to brand number
        :return: brand designation
        1zGate G1 One35Roadsign46Huckezunknown brand number )r   
ValueErrorr    s    r"   brand_designationzArticle.brand_designation   sS     : =Z4:Z47ATZAABBBr$   articleall, delete-orphanback_populatescascadeArticleDetailcolor_sizeszseasons.code	season_nrr2   Seasonseasonzgroups.codegroup_nrGroupgroupztheme_groups.codetheme_group_nr
ThemeGrouptheme_groupc                     | j         S N)r   r    s    r"   __repr__zArticle.__repr__@   s    ""r$   N) __name__
__module____qualname____tablename__r   r	   r   r   str__annotations__r   r   r   r   r   r   propertyr#   r&   r.   r   r5   r   r
   r6   intr9   r:   r<   r=   r?   rB    r$   r"   r   r      s        M"/-s"N"N"NNF3KNNN+8=+@+@x(@@@)6ttvv)>)>fX&>>>,}VVC[[99K999&vvc{{33E6#;333: : : : X: <3 < < < X< C3 C C C XC  2> $2 2 2K_-.   
 +]::n+E+EFFIvc{FFF+|!     FF8    *M**]*C*CDDHfSkDDD)\!  E6'?    #0-

;N0O0O"P"PNF3KPPP(4!) ) )K%   ## # # # # # #r$   r   c                       e Zd ZU dZ ed          Zee         ed<    e e	d                    Z
ee         ed<    e e	d                    Zee         ed<    e e	d                    Zee         ed<   d	S )
PicturepicturesTr   idr   typeref_idpathN)rC   rD   rE   rF   r   rO   r   rJ   rH   r	   rP   rG   rQ   rR   rK   r$   r"   rM   rM   D   s         M#m555Bs555%ffSkk22D&+222'-s44FF3K444%ffSkk22D&+22222r$   rM   c                   P    e Zd ZU dZ edd          Zeed                  ed<   dS )r>   theme_groupsr?   r0   r1   r   r   N	rC   rD   rE   rF   r   r   r   r   rH   rK   r$   r"   r>   r>   M   sQ         "M(4$$) ) )HfT)_%     r$   r>   c                   P    e Zd ZU dZ edd          Zeed                  ed<   dS )r;   groupsr<   r0   r1   r   r   NrU   rK   r$   r"   r;   r;   V   sQ         M(4$) ) )HfT)_%     r$   r;   c                   \    e Zd ZU dZ edd          Zeed                  ed<   d Z	d Z
d	S )
r8   seasonsr9   r0   r1   r   r   c                 "    | j         |j         k    S rA   code)r!   others     r"   __eq__zSeason.__eq__g   s    yEJ&&r$   c                 *    t          | j                  S rA   )hashr\   r    s    r"   __hash__zSeason.__hash__j   s    DIr$   N)rC   rD   rE   rF   r   r   r   r   rH   r^   ra   rK   r$   r"   r8   r8   _   so         M(4$) ) )HfT)_%   
' ' '    r$   r8   c                   P   e Zd ZU dZ e ed          d          Zee         e	d<    e ed                    Z
ee         e	d<    e ed                    Zee         e	d<    ed	
          Zee         e	d<    e e                      Zee         e	d<    e e                      Zee         e	d<    e e                      Zee         e	d<    e e                      Zee         e	d<    e e                      Zee         e	d<    e ed                    Zee         e	d<    ed
          Zed         e	d<    e e                      Zee         e	d<    ed
          Zeed                  e	d<   ed             Zed             Z ed             Z!dS )r4   article_detailsr   Tr   eanvariant_numberzarticles.article_numberr   r5   r7   r/   genderunlimited_sellquantitysizesize_registerzcolors.code
color_codeColorcolorsurcharge_codearticle_detail	Pricelist
pricelistsc                      | j         dk    rdS dS )N   malefemale)rf   r    s    r"   
gender_strzArticleDetail.gender_str   s    ;!68r$   c                     d| j         cxk    rdk    rn ndS d| j         cxk    rdk    rn ndS d| j         cxk    rdk    rn nd	S d
S )z^
        Size group according to size of this article
        :return: size group 1-4
        N   0   rs   (            Z         )ri   r    s    r"   
size_groupzArticleDetail.size_group   s         b     149"""""""""1DI#########11r$   c                     | j         S rA   )rd   r    s    r"   picture_referencezArticleDetail.picture_reference   s	    xr$   N)"rC   rD   rE   rF   r   r	   rd   r   rG   rH   re   r
   r   r   r/   r   r   rf   rJ   r   rg   boolrh   ri   rj   rk   rm   rn   rq   r   rI   rv   r   r   rK   r$   r"   r4   r4   n   s|        %M$}VVC[[dCCCCCCC"/-s"<"<NF3K<<<"/-

;T0U0U"V"VNF3KVVV+|$     GVG_   
 (-		22FF3K222#0=#;#;NF4L;;;)M''))44HfSk444%ggii00D&+000!.wwyy!9!9M6#;999 ,mJJ},E,EFFJsFFF)\(  E6'?    #0-		":":NF3K:::,8L'- - -JtK()      X   X   X  r$   r4   c                   d    e Zd ZU dZ ed          Zeed                  ed<   e	d             Z
dS )rl   colorsrm   r7   r4   rc   c                     | j         S rA   r[   r    s    r"   r   zColor.picture_reference   s
    yr$   N)rC   rD   rE   rF   r   rc   r   r   rH   rI   r   rK   r$   r"   rl   rl      sj         M5A\6 6 6OVD12      X  r$   rl   c                       e Zd ZU dZ ed          Zee         ed<    e e	dd                    Z
ee         ed<    e ed          d          Zee         ed	<    ed
          Zed         ed<   dS )rp   rq   Tr   r\      r|   pricezarticle_details.eanarticle_detail_eanr7   r4   ro   N)rC   rD   rE   rF   r   r\   r   rJ   rH   r   r   floatr
   r   rG   r   ro   rK   r$   r"   rp   rp      s          M%$777D&+777(=A77E6%=777&3mJJ?T4U4Ucg&h&h&hshhh.:l#/ / /NF?+     r$   rp   N)r   src.data.model.db.base_dbr   r   sqlalchemy.ormr   r   r   
sqlalchemyr	   r
   r   r   r   r   r   typingr   r   rM   r>   r;   r8   r4   rl   rp   rK   r$   r"   <module>r      s         4 4 4 4 4 4 4 4 > > > > > > > > > > Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q      9# 9# 9# 9# 9#d 9# 9# 9#x3 3 3 3 3d 3 3 3           H       X   9 9 9 9 9D 9 9 9x    H   	 	 	 	 	 	 	 	 	 	r$   