
    h                     |    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	 d dl
mZ d dlmZmZ d dlmZ  G d	 d
      Zy)    )List)HTTPException)Session)schema)JWTPayloadSchema)Messages)AdditionalInstallationBaseTblAdditionalInstallation)CustomResponsec                       e Zd ZdedefdZdeej                     fdZ	de
fdZde
d	d
fdZdej                  fdZde
fdZy)AdditionalInstallationServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      E/var/www/html/RetailAPI/app/api/addtional_installation_fix/service.py__init__z&AdditionalInstallationService.__init__   s    
    requestc                    K   g }|D ]3  }t        j                  || j                        }|j                  |       5 | j                  j	                          t        dt        j                        S w)N1statusmessage)r
   create_additional_installationr   appendcommitr   r   ADDITIONAL_INSTALLATION)r   r   created_aditional_installationitemsales        r   r   z<AdditionalInstallationService.create_additional_installation   s`     )+&D,KKDRVRYRYZD*11$7  	S(2R2RSSs   A0A2additional_get_idc                    K   t        j                  || j                        }|st        dd      t        j
                  j                  |      S w)N  z(Get Additional Installation ID not foundstatus_codedetail)r
   get_additional_installationr   r   r   AdditionalInstallationResponsemodel_validate)r   r"   new_get_additional_installations      r   r(   z9AdditionalInstallationService.get_additional_installation   sJ     *C*_*_`qswszsz*{'.C8bcc44CCDcdds   AAgroup_idreturnr
   c                 &  K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |D cg c]!  }t        j                  j                  |      # c}S c c}w w)Nr$   zGet Group ID not foundr%   )
r   queryr
   filterr,   allr   r   r)   r*   )r   r,   %new_get_group_additional_installation	get_groups       r   !get_group_additional_installationz?AdditionalInstallationService.get_group_additional_installation   s     04>W0X0_0_`y  aC  aC  GO  aO  1P  1T  1T  1V-4C8PQQ bG  H  bGT]55DDYO  bG  H  	H  Hs   A!B#&B	Bc                 ^  K   t        j                  |j                               }|j                  t	        dt
        j                        S t        j                  |j                  || j                         | j                  j                          t	        dt
        j                        S wNz-1r   r   )r	   r*   
model_dumpadditional_idr   r   ADDITIONAL_INSTALLATION_NOTr
   update_additional_installationr   r   ADDITIONAL_INSTALLATION_UPDATE)r   r   updated_additional_installations      r   r:   z<AdditionalInstallationService.update_additional_installation#   s     *D*S*ST[TfTfTh*i'*88@!x7[7[\\!@@A`AnAn  qP  RV  RY  RY  	ZS(2Y2YZZs   B+B-c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr6   )r
   delete_additional_installationr   r   r   r9   ADDITIONAL_INSTALLATION_DELETE)r   r,   deleted_additional_installations      r   r>   z<AdditionalInstallationService.delete_additional_installation+   sJ     *C*b*bckmqmtmt*u'.!x7[7[\\S(2Y2YZZs   AAN)__name__
__module____qualname__r   r   r   r   r   AdditionalInstallationCreater   intr(   r4   AdditionalInstallationUpdater:   r>    r   r   r   r   
   sv    ' )9 T4@c@c;d Te# eHs HFa H[6;^;^ [[C [r   r   N)typingr   fastapir   sqlalchemy.ormr   "app.api.addtional_installation_fixr   app.dependency.authanticationr   app.locale.messagesr   ,app.models.main.additional_installations_fixr	   r
   app.utils.schemas_utilsr   r   rG   r   r   <module>rP      s)     ! " 5 : ( n 2%[ %[r   