
    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 d dlmZmZ d dlmZ d d	lmZ  G d
 d      Zy)    )List)HTTPException)Session)schemas)PlumbingResponceplumbingCreate)JWTPayloadSchema)PlumbingBaseTblPlumbing)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)PlumlingServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      ?/var/www/html/retail-simulation-api/app/api/plumbing/service.py__init__zPlumlingService.__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Plumbing created successfully.statusmessage)unitscost_per_unitr   model_validatetotalr   creater
   
model_dumpr   addcommitrefreshr   )r   r   r    created_plumbingnew_equipments        r   create_plumbingzPlumlingService.create_plumbing   s     mmG111+::7C$#**<+F+FGWGbGbGd+efjfmfmnM"&S2RSS   CCgroup_idc                   K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |D cg c]  }t        j                  |       c}S c c}w w)Ni  zPlumbing Not Found)status_codedetail)	r   queryr   filterr*   allr   r   r   )r   r*   plumbing_record	get_groups       r   get_plumbingzPlumlingService.get_plumbing   sm     ''--4;;K<P<PT\<\]aacC7KLLL[\Oy //	:O\\\s   A!B#B?B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"   r    plumb_idr   r   PLAMBING_NOTr   updater   r$   PLAMBING_UPDATE)r   r   reqr    updated_datas        r   updatedzPlumlingService.updated!   s     C))C---E'66s~~7GHL$L$$,%T8;P;PQQ|44lDGGL  	S(2J2JKKr)   r6   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr5   )r   deleter   r   r   r7   PLAMBING_DELETE)r   r6   deleted_datas      r   deletedzPlumlingService.deleted,   sE     "))(DGG<!x7L7LMMS(2J2JKKs   AAN)__name__
__module____qualname__r   r	   r   r   r(   intr3   r   r   PlumbingUpdater<   rA    r   r   r   r      sY    7 +; 	T^ 	T]3 ]	LD)?)?$@ 	LLS Lr   r   N)typingr   fastapir   sqlalchemy.ormr   app.api.plumbingr   app.api.plumbing.schemasr   r   app.dependency.authanticationr	   app.models.main.Plumbingr
   r   app.utils.schemas_utilsr   app.locale.messagesr   r   rG   r   r   <module>rQ      s,     ! " $ E : > 2 (%L %Lr   