
    Eh                         d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZmZ d dlmZ d dlmZ d d	lmZ  G d
 d      Zy)    )List)HTTPException)Session)schemas)CommercialEquipmentBaseTblCommercialEquipment)CommercialEquipmentCreateCommercialEquipmentResponse)JWTPayloadSchema)CustomResponse)Messagesc                   f    e Zd ZdedefdZdefdZdefdZ	de
ej                     fdZd	efd
Zy)CommercialEquipmentServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      K/var/www/html/retail-simulation-api/app/api/commercial_equipment/service.py__init__z#CommercialEquipmentService.__init__   s    
    requestc                   K   |j                   |j                   z  }t        j                  |      }||_        t	        j
                  t        j                  |j                               | j                        }| j                  j                  |       | j                  j                          | j                  j                  |       t        dd      S w)N1z/Commercial Equipment item created successfully.statusmessage)cost_per_unitr
   model_validatetotalr   creater   
model_dumpr   addcommitrefreshr   )r   r   r   created_equipmentnew_equipments        r   create_commercial_equipmentz6CommercialEquipmentService.create_commercial_equipment   s     ##G$9$997FFwO %.556M6\6\]n]y]y]{6|  ~B  ~E  ~E  FM"&S2cdd   CCgroup_idc                    K   t        j                  || j                        }|st        dd      |D cg c]  }t	        j
                  |       c}S c c}w w)Ni  zcomercial equipment not found)status_codedetail)r   	get_by_idr   r   r
   r   )r   r)   commercial_equipment	get_groups       r   get_commercial_equipmentz3CommercialEquipmentService.get_commercial_equipment!   sT     5??$''R#C7VWWWklWk)+::9EWkllls   4AAAc                   K   |D ]  }|j                   |j                   z  }t        j                  |j                               }||_        |j
                  t        dt        j                        c S t        j                  |j
                  || j                          | j                  j                          t        dt        j                        S wNz-1r   r   )r   r   r   r!   r   equipment_idr   r   COMMERCIAL_EQUIPMENT_NOTr   updater   r#   COMMERCIAL_EQUIPMENT_UPDATE)r   r   reqr   updated_datas        r   updatedz"CommercialEquipmentService.updated'   s     C##C$5$55E2AA#..BRSL$L((0%T8;\;\]]")),*C*C\SWSZSZ[  	S(2V2VWWr(   r3   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr2   )r   deleter   r   r   r4   COMMERCIAL_EQUIPMENT_DELETE)r   r3   deleted_datas      r   deletedz"CommercialEquipmentService.deleted2   sE     -44\477K!x7X7XYYS(2V2VWWs   AAN)__name__
__module____qualname__r   r   r   r	   r'   intr0   r   r   CommercialEquipmentUpdater9   r>    r   r   r   r      sZ    7 +; e9R ems m	XD)J)J$K 	XX Xr   r   N)typingr   fastapir   sqlalchemy.ormr   app.api.commercial_equipmentr   $app.models.main.commercial_equipmentr   r   $app.api.commercial_equipment.schemasr	   r
   app.dependency.authanticationr   app.utils.schemas_utilsr   app.locale.messagesr   r   rD   r   r   <module>rN      s,     ! " 0 ` g : 2 (+X +Xr   