
    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)HTTPException)schema)JWTPayloadSchema)Messages)MarketingCompetitorBaseTblMarketingCompetitor)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)MarketingCompetitorServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      T/var/www/html/retail-simulation-api/app/api/marketing_competitor_analysis/service.py__init__z#MarketingCompetitorService.__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_marketing_competitorr   commitr
   r   MARKETING_COMPETITOR)r   r   created_marketing_competitors      r   r   z6MarketingCompetitorService.create_marketing_competitor   sY     '>'M'MgN`N`Nb'c$::;WY]Y`Y`aS(2O2OPPs   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_marketing_competitorr   r   r   MarketingCompetitorResponser   )r   r!   new_get_marketing_competitor	get_groups       r   r%   z3MarketingCompetitorService.get_marketing_competitor   s^     '='V'VW_aeahah'i$+C8PQQ^z{^zQZ22AA)L^z{{{s   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   competitor_idr
   r   MARKETING_COMPETITOR_NOTr	   update_market_comppetitorr   r   MARKETING_COMPETITOR_UPDATE)r   r   requpdated_marketing_competitors       r   update_marketing_competitorz6MarketingCompetitorService.update_marketing_competitor   s     C+B+Q+QRUR`R`Rb+c(+99A%T8;\;\]]"<<=Y=g=g  jF  HL  HO  HO  P	 
 	S(2V2VWWs   B4B6r+   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr*   )r	   delete_market_competitorr   r
   r   r,   MARKETING_COMPETITOR_DELETE)r   r+   deleted_marketing_competitors      r   delete_marketing_competitorz6MarketingCompetitorService.delete_marketing_competitor$   sJ     '='V'VWdfjfmfm'n$+!x7X7XYYS(2V2VWWs   AAN)__name__
__module____qualname__r   r   r   r   MarketingCompetitorCreater   intr%   r   MarketingCompetitorUpdater1   r6    r   r   r   r   
   s_    ' )9 Q8X8X Q|c |XV=]=]8^ XXc Xr   r   N)typingr   fastapir   %app.api.marketing_competitor_analysisr   app.dependency.authanticationr   app.locale.messagesr   -app.models.main.marketing_competitor_analysisr   r	   app.utils.schemas_utilsr
   sqlalchemy.ormr   r   r=   r   r   <module>rF      s)     ! 8 : ( i 2 "X Xr   