
    sSBi                         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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)DOUBLE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        K/var/www/html/retail-simulation-api/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d fd       Zededededed    fd       Z e!defd       Z"edededd fd       Z#y)TblDisplayRackingUnittbl_display_racking_unitr   T)primary_keyautoincrementztbl_group.group_id)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)clsr2   r3   	data_dictnew_datas        r&   createzTblDisplayRackingUnit.create!   s5    OO%	##
x

r%   c                 x    |j                  |       j                  | j                  |k(        j                         S N)queryfilterr   all)r9   r   r3   s      r&   get_unitzTblDisplayRackingUnit.get_unit)   s-    xx}##CLLH$<=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   firstr6   itemssetattrcommitrefresh)r9   r   r2   r3   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%   c                     |j                  |       j                  | j                  |k(        j                         }|sy|j	                  |       |j                          |S )NF)r?   r@   r   rE   deleterH   )r9   r   r3   delete_datas       r&   delete_unitz!TblDisplayRackingUnit.delete_unit<   sM    hhsm**3;;'+ABHHJ
		+
		r%   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<   rB   r   rM   propertyrP   rT   r$   r%   r&   r(   r(      s   .M(G]abGVC[b)':>R3S^bcHfSkc%248HJZat3u  AE  &Fvc{  F,9&+PT,UfSkU#0$#GOVC[G#0$#GM6%=G($?E6%=?(=GVC[=4KLE0 g BY   D D D5L D D # -C  U]^uUv   9E 9 9   4K  r%   r(   N)pydanticr   r   typingr   
sqlalchemyr   r   r   r	   r
   r   r   sqlalchemy.ormr   r   r   r   app.models.mainr   r   r(   r$   r%   r&   <module>r^      s5    %  M M M G G  	.Y 	.1D 1r%   