
    h                     |    d dl mZ d dlmc mc 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)
    )SessionN)JWTPayloadSchema)Messages)TblGroup)SimulationBaseTblSimulation)CustomResponsec                   `    e Zd ZdedefdZdej                  fdZde	fdZ
defd	Zde	fd
Zy)SimulationServicedbtokenc                      || _         || _        y N)r   r   )selfr   r   s      5/var/www/html/RetailAPI/app/api/simulation/service.py__init__zSimulationService.__init__
   s    
    requestc                    K   t        j                  |j                               }t        j                  || j
                         | j
                  j                          t        dt        j                        S w)N1statusmessage)
r   model_validate
model_dumpr   creater   commitr	   r   SIMULATION_CREAT)r   r   created_users      r   create_simulationz#SimulationService.create_simulation   sT     %44W5G5G5IJ\4773S(2K2KLLs   A9A;simulation_idc                    K   t        j                  || j                        }t        j                  j                  |      S wr   )r   	get_by_idr   schemasSimulationResponser   )r   r!   
simulations      r   get_simulationz SimulationService.get_simulation   s3     ",,]DGGD
))88DDs   A Asimulation_codec                     | j                   j                  t              j                  t        j                  |k(        j                         S r   )r   queryr   filterr(   all)r   r(   s     r   get_groups_by_simulation_idz-SimulationService.get_groups_by_simulation_id   s4    ww}}X&--h.F.F/.YZ^^``r   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)Nz-1r   r   )r   deleter   r	   r   SIMULATION_NOT_FOUNDSIMULATION_DELETED)r   r!   deleteds      r   delete_simulationz#SimulationService.delete_simulation#   sE     &&}dgg>!x7T7TUUS(2M2MNNs   AAN)__name__
__module____qualname__r   r   r   r$   SimulationCreater    intr'   strr-   r3    r   r   r   r   	   sT    7 +; Mw/G/G ME3 Ea3 aOS Or   r   )sqlalchemy.ormr   app.api.simulation.schemasapir&   r$   app.dependency.authanticationr   app.locale.messagesr   app.models.main.groupr   app.models.main.simulationr   r   app.utils.schemas_utilsr	   r   r:   r   r   <module>rC      s)    " , , : ( * D 2O Or   