
    h[
                         d dl mZmZ d dlmZ d dlmZmZmZm	Z	m
Z
mZ d dlmZmZmZmZ d dlmZ  G d de      Z G d d	e      Zy
)    )	BaseModelField)Optional)IntegerFloatStringEnumText
ForeignKey)relationshipMappedmapped_columnSession)Basec                      e Zd ZU  ed      Zedz  ed<    ed      Zedz  ed<    ed      Ze	dz  ed<    ed      Z
e	dz  ed<    ed      Zedz  ed<    ed      Zedz  ed<    ed      Zedz  ed	<    ed      Ze	dz  ed
<   y)DisplayRackingUnitBaseN)defaultrack_idgroup_idstore_format_typetype_display_racking_unitnumber_of_unitscost_per_unittotalremarks)__name__
__module____qualname__r   r   int__annotations__r   r   strr   r   r   floatr   r        ?/var/www/html/RetailAPI/app/models/main/display_racking_unit.pyr   r      s    -GS4Z- .HcDj.$)$$7sTz7,1$,?sTz?"'"5OS4Z5"'"5M54<5t,E%$,,-GS4Z-r$   r   c            
          e Zd ZU dZ ededd      Zee   e	d<    ee e
d      d      Zee   e	d<    e ed	d
d      d      Zee   e	d<    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ed      Zee   e	d<    eed      Zee   e	d<    edd      Zedededd fd       Zedededed    fd       Zededededed    fd       Z e!defd       Z"y)TblDisplayRackingUnittbl_display_racking_unitr   T)primary_keyautoincrementztbl_group.group_idF)nullabler   zStore Format AzStore Format Br   )name   r   r   r   r   r   TblGroupdisplay_racking_units)back_populatesdatadbreturnc                 x    |j                         } | di |}|j                  |       |j                          |S )Nr#   )
model_dumpaddflush)clsr1   r2   	data_dictnew_datas        r%   createzTblDisplayRackingUnit.create!   s5    OO%	##
x

r$   c                 x    |j                  |       j                  | j                  |k(        j                         S N)queryfilterr   first)r8   r   r2   s      r%   get_unitzTblDisplayRackingUnit.get_unit)   s-    xx}##CKK7$:;AACCr$   c                 .   |j                  |       j                  | j                  |k(        j                         }|sy |j	                  d      j                         D ]  \  }}t        |||        |j                          |j                  |       |S )NT)exclude_unset)	r>   r?   r   r@   r5   itemssetattrcommitrefresh)r8   r   r1   r2   existingkeyvalues          r%   update_unitz!TblDisplayRackingUnit.update_unit-   s{    88C=''w(>?EEG///=CCEJCHc5) F
		


8r$   c                 4    | j                   | j                  z  S r=   )r   r   )selfs    r%   
total_costz TblDisplayRackingUnit.total_cost8   s    ##d&8&888r$   N)#r   r   r   __tablename__r   r   r   r   r   r    r   r   r	   r   r!   r   r   r   r   r   r"   r   r
   r   r   groupclassmethodr   r   r;   r   rA   rK   propertyrN   r#   r$   r%   r'   r'      s   .M(G]abGVC[b)':>R3S^cdHfSkd%248HJZat3u  AF  &Gvc{  G,9&+PU,VfSkV#05#IOVC[I#0#GM6%=G(>E6%=>(>GVC[>4KLE0 g BY   Ds D DH=T4U D D # -C  U]^uUv   9E 9 9r$   r'   N)pydanticr   r   typingr   
sqlalchemyr   r   r   r	   r
   r   sqlalchemy.ormr   r   r   r   app.models.mainr   r   r'   r#   r$   r%   <module>rX      s2    %  E E G G  	.Y 	.(9D (9r$   