
    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	 d dl
mZmZ d dlmZ d dlmZ  G d	 d
      Zy)    )List)schema)JWTPayloadSchema)Messages)HTTPException)DefineYourPromotionsBaseTblDefineYourPromotions)CustomResponse)Sessionc                   z    e Zd ZdedefdZdej                  fdZde	fdZ
deej                     fdZd	e	fd
Zy)DefineYourPromotionsServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      V/var/www/html/retail-simulation-api/app/api/define_your_promotions_strategy/service.py__init__z$DefineYourPromotionsService.__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	   create_definer   commitr
   r   DEFINE_YOUR_PROMOTIONS)r   r   created_defines      r   r   z)DefineYourPromotionsService.create_define   sT     1@@ASASAUV--ndggFS(2Q2QRRs   A9A;group_idc                    K   t        j                  || j                        }|st        dd      |D cg c]!  }t        j
                  j                  |      # c}S c c}w w)Ni  zGet group ID not found)status_codedetail)r	   
get_definer   r   r   DefineYourPromotionsResponser   )r   r!   new_get_dafine	get_groups       r   r%   z&DefineYourPromotionsService.get_define   sY     0;;HdggNC8PQQ_mn_mR[33BB9M_mnnns   4A$&AA$c                 p  K   |D ]y  }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   	define_idr
   r   DEFINE_YOUR_PROMOTIONS_NOTr	   update_definer   r   DEFINE_YOUR_PROMOTIONS_UPDATE)r   r   requpdated_defines       r   r-   z)DefineYourPromotionsService.update_define   s     C5DDS^^EUVN''/%T8;^;^__#11.2J2JN\`\c\cd	 
 	S(2X2XYYs   B4B6r+   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr*   )r	   delete_definer   r
   r   r,   DEFINE_YOUR_PROMOTIONS_DELETE)r   r+   deleted_defines      r   r2   z)DefineYourPromotionsService.delete_define$   sE     0>>y$''R!x7Z7Z[[S(2X2XYYs   AAN)__name__
__module____qualname__r   r   r   r   DefineYourPromotionsCreater   intr%   listDefineYourPromotionsUpdater-   r2    r   r   r   r   
   s_    ' )9 S)J)J So oZ$v/P/P*Q ZZC Zr   r   N)typingr   'app.api.define_your_promotions_strategyr   app.dependency.authanticationr   app.locale.messagesr   fastapir   /app.models.main.define_your_promotions_strategyr   r	   app.utils.schemas_utilsr
   sqlalchemy.ormr   r   r<   r   r   <module>rE      s)     : : ( ! m 2 "Z Zr   