o
    Uh
                     @   s   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 deZG dd	 d	eZG d
d deZG dd deZdS )    )	BaseModelField)Enum)
ForeignKeyStringr   )Mappedmapped_columnrelationshipSession)Basec                   @      e Zd ZdZdZdS )EquipmentTypeEnumSpecialised	UniversalN)__name__
__module____qualname__SPECIALISED	UNIVERSAL r   r   ?/var/www/html/RetailAPI/app/models/main/commercial_equipment.pyr          r   c                   @   r   )StoreFormatzStore format AzStore Format BN)r   r   r   STORE_FORMAT_ASTORE_FORMAT_Br   r   r   r   r      r   r   c                   @   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
< eddZe	dB ed< dS )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   
 r   c                   @   sN  e Zd ZU dZedddZee ed< ee	dddZ
ee ed< eedd	dZee ed
< eedd	dZee ed< ed	dZee ed< ed	dZee ed< eeeddd	dZee ed< ed	dZee ed< eedd	dZee ed< edddZedefddZedededd fddZedededdfdd Zd!S )"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                 C   s   | j | j S N)r!   r"   )selfr   r   r   
total_cost+   s   z!TblCommercialEquipment.total_costdatadbc                 C   s,   |  }| di |}|| |  |S )Nr   )
model_dumpaddflush)clsr:   r;   	data_dict	new_entryr   r   r   create/   s
   
zTblCommercialEquipment.createzTblCommercialEquipment | Nonec                 C   s   | | | j|k S r7   )queryfilterr   first)r?   r   r;   r   r   r   	get_by_id7   s   z TblCommercialEquipment.get_by_idN) r   r   r   __tablename__r   r   r   r&   r'   r   r   r   r   r(   r    r!   r"   r)   SqlEnumr   r#   r$   r%   r	   grouppropertyr9   classmethodr   r
   rB   rF   r   r   r   r   r*      s$   
  r*   N)pydanticr   r   enumr   PyEnum
sqlalchemyr   r   rH   sqlalchemy.ormr   r   r	   r
   app.models.mainr   r   r   r   r*   r   r   r   r   <module>   s    