
    	,h
                         d dl mZmZ d dlmZ d dl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 G d
 de      Z G d de      Zy)    )	BaseModelField)Enum)
ForeignKeyStringr   )Mappedmapped_columnrelationshipSession)Basec                       e Zd ZdZdZy)EquipmentTypeEnumSpecialised	UniversalN)__name__
__module____qualname__SPECIALISED	UNIVERSAL     ?/var/www/html/RetailAPI/app/models/main/commercial_equipment.pyr   r      s    KIr   r   c                       e Zd ZdZdZy)StoreFormatzStore format AzStore Format BN)r   r   r   STORE_FORMAT_ASTORE_FORMAT_Br   r   r   r   r      s    %N%Nr   r   c                   @   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
<    ed      Ze	dz  ed<   y)CommercialEquipmentBaseN)defaultequipment_idgroup_idformat_typetype_of_equipmentnumber_of_unitscost_per_unitequipment_categorytotalremarks)r   r   r   r   r    int__annotations__r!   r"   strr#   r$   r%   floatr&   r'   r(   r   r   r   r   r      s    $T2L#*2 .HcDj.#D1Kt1$)$$7sTz7"'"5OS4Z5"'"5M54<5&+D&9t9-E54<--GS4Z-r   r   c                      e Zd ZU dZ 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	      Zee   ed<    ed	      Zee   ed<    e eed      d	      Zee   ed<    ed	      Zee   ed<    e ed      d	      Zee   ed<    edd      Zedefd       Zedededd fd       Zedededdfd       Zy)TblCommercialEquipmenttbl_commercial_equipmentT)primary_keyautoincrementr    ztbl_group.group_id)nullabler!   2   Fr"   d   r#   r$   r%   equipment_category_enum)namer&   r'   r(   TblGroupcommercial_equipments)back_populatesreturnc                 4    | j                   | j                  z  S N)r$   r%   )selfs    r   
total_costz!TblCommercialEquipment.total_cost+   s    ##d&8&888r   datadbc                 x    |j                         } | di |}|j                  |       |j                          |S )Nr   )
model_dumpaddflush)clsr?   r@   	data_dict	new_entrys        r   createzTblCommercialEquipment.create/   s6    OO%	$)$	
y

r   zTblCommercialEquipment | Nonec                 x    |j                  |       j                  | j                  |k(        j                         S r<   )queryfilterr    first)rE   r    r@   s      r   	get_by_idz TblCommercialEquipment.get_by_id7   s/    xx}##C$4$4$DEKKMMr   N) r   r   r   __tablename__r	   r    r   r)   r*   r   r!   r   r"   r+   r#   r$   r%   r,   SqlEnumr   r&   r'   r(   r
   grouppropertyr>   classmethodr   r   rH   rM   r   r   r   r.   r.      si   .M -$d SL&+S)*5I*JUYZHfSkZ,VBZ%HKH%26#;%Ovc{O#0%#@OVC[@#0%#@M6%=@4A'J[b{B|  HM  5N01  N(%8E6%=8(uEGVC[E4KLE9E 9 9 1 w C[   NS Ng N:Y N Nr   r.   N)pydanticr   r   enumr   PyEnum
sqlalchemyr   r   rO   sqlalchemy.ormr   r	   r
   r   app.models.mainr   r   r   r   r.   r   r   r   <module>rY      sL    %  9 9 G G   && &
.i 
.NT Nr   