o
    Uh                     @   sv   d dl mZ d dlm  m  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	 d	ZdS )
    )SessionN)JWTPayloadSchema)Messages)TblGroup)SimulationBaseTblSimulation)CustomResponsec                   @   sX   e Zd ZdedefddZdejfddZde	fd	d
Z
defddZde	fddZdS )SimulationServicedbtokenc                 C   s   || _ || _d S N)r
   r   )selfr
   r    r   5/var/www/html/RetailAPI/app/api/simulation/service.py__init__
   s   
zSimulationService.__init__requestc                    s6   t | }t|| j | j  tdtj	dS )N1statusmessage)
r   model_validate
model_dumpr   creater
   commitr   r   SIMULATION_CREAT)r   r   created_userr   r   r   create_simulation   s
   
z#SimulationService.create_simulationsimulation_idc                    s   t || j}tj|S r   )r   	get_by_idr
   schemasSimulationResponser   )r   r   
simulationr   r   r   get_simulation   s   z SimulationService.get_simulationsimulation_codec                 C   s   | j ttj|k S r   )r
   queryr   filterr#   all)r   r#   r   r   r   get_groups_by_simulation_id   s   z-SimulationService.get_groups_by_simulation_idc                    s0   t || j}|stdtjdS tdtjdS )Nz-1r   r   )r   deleter
   r   r   SIMULATION_NOT_FOUNDSIMULATION_DELETED)r   r   deletedr   r   r   delete_simulation#   s
   z#SimulationService.delete_simulationN)__name__
__module____qualname__r   r   r   r   SimulationCreater   intr"   strr'   r,   r   r   r   r   r	   	   s    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   r   <module>   s    