
    mh<	                     |    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 d dlmZ d dlmZ  G d	 d
      Zy)    )List)Session)schema)PromotionCompetitorAnalysisBaseTblPromotionCompetitorAnalysis)CustomResponse)Messages)HTTPException)JWTPayloadSchemac                   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)"PromotionCompetitorAnalysisServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      T/var/www/html/retail-simulation-api/app/api/promotion_competitor_analysis/service.py__init__z+PromotionCompetitorAnalysisService.__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_promotionr   commitr   r	   PROMOTION_COMPETITOR_ANALYSIS)r   r   created_promotions      r   r   z3PromotionCompetitorAnalysisService.create_promotion   sV     ;JJ7K]K]K_`&778I477SS(2X2XYYs   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_promotionr   r
   r   #PromotionCompetitorAnalysisResponser   )r   r!   new_get_promotion	get_groups       r   r%   z0PromotionCompetitorAnalysisService.get_promotion   s]     :HHSWSZSZ[ C8PQQfwxfwYb::II)Tfwxxxs   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   promotion_idr   r	   !PROMOTION_COMPETITOR_ANALYSIS_NOTr   update_promotionr   r   $PROMOTION_COMPETITOR_ANALYSIS_UPDATE)r   r   requpdated_promotions       r   r-   z3PromotionCompetitorAnalysisService.update_promotion   s     C ? N Ns~~O_ ` --5%T8;e;eff*;;<M<Z<Z\mosovovw	 
 	S(2_2_``s   B4B6r+   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr*   )r   delete_promotionr   r   r	   r,   $PROMOTION_COMPETITOR_ANALYSIS_DELETE)r   r+   deleted_promotions      r   r2   z3PromotionCompetitorAnalysisService.delete_promotion$   sI     :KKLZ^ZaZab !x7a7abbS(2_2_``s   AAN)__name__
__module____qualname__r   r   r   r   "PromotionCompetitorAnalysisCreatedr   intr%   r   !PromotionCompetitorAnalysisUpdater-   r2    r   r   r   r   
   s_    ' )9 ZV-V-V Zy3 yaT&2Z2Z-[ aa# ar   r   N)typingr   sqlalchemy.ormr   %app.api.promotion_competitor_analysisr   -app.models.main.promotion_competitor_analysisr   r   app.utils.schemas_utilsr   app.locale.messagesr	   fastapir
   app.dependency.authanticationr   r   r;   r   r   <module>rD      s)     " 8 y 2 ( ! :a ar   