o
    Uh[
                     @   s   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 deZG dd	 d	eZd
S )    )	BaseModelField)Optional)IntegerFloatStringEnumText
ForeignKey)relationshipMappedmapped_columnSession)Basec                   @   s   e Zd ZU eddZedB ed< eddZedB ed< eddZe	dB ed< eddZ
e	dB ed< eddZedB ed< eddZedB ed< eddZedB ed	< eddZe	dB ed
< dS )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    r!   r!   ?/var/www/html/RetailAPI/app/models/main/display_racking_unit.pyr      s   
 r   c                
   @   sb  e Zd ZU dZededddZee e	d< eee
dddZee e	d< eed	d
ddddZee e	d< eedd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eddZee e	d< eeddZee e	d< edddZedededd fddZedededed  fddZededededed  fddZ e!defdd Z"d!S )"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                 C   s,   |  }| di |}|| |  |S )Nr!   )
model_dumpaddflush)clsr-   r.   	data_dictnew_datar!   r!   r"   create!   s
   
zTblDisplayRackingUnit.createc                 C   s   | | | j|k S N)queryfilterr   first)r3   r   r.   r!   r!   r"   get_unit)   s   zTblDisplayRackingUnit.get_unitc                 C   s^   | | | j|k }|sd S |jdd D ]
\}}t||| q|  || |S )NT)exclude_unset)	r8   r9   r   r:   r0   itemssetattrcommitrefresh)r3   r   r-   r.   existingkeyvaluer!   r!   r"   update_unit-   s   
z!TblDisplayRackingUnit.update_unitc                 C   s   | j | j S r7   )r   r   )selfr!   r!   r"   
total_cost8   s   z TblDisplayRackingUnit.total_costN)#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   r6   r   r;   rD   propertyrF   r!   r!   r!   r"   r#      s&   
 " 
r#   N)pydanticr   r   typingr   
sqlalchemyr   r   r   r   r	   r
   sqlalchemy.ormr   r   r   r   app.models.mainr   r   r#   r!   r!   r!   r"   <module>   s     