
    Eh5	                     |    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 d dlmZ  G d	 d
      Zy)    )List)schema)CompetitorLoyaltyBaseTblCompetitorLoyalty)CustomResponse)Session)JWTPayloadSchema)Messages)HTTPExceptionc                   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)CompetitorLoyaltyServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      Q/var/www/html/retail-simulation-api/app/api/competitor_loyalty_program/service.py__init__z!CompetitorLoyaltyService.__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_competitor_loyaltyr   commitr   r
   COMPETITOR_LOYALTY)r   r   created_competitor_loyaltys      r   r   z2CompetitorLoyaltyService.create_competitor_loyalty   sY     %:%I%I'J\J\J^%_"667QSWSZSZ[S(2M2MNNs   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_competitor_loyaltyr   r   r   CompetitorLoyaltyResponser   )r   r!   new_get_competitor_loyalty	get_groups       r   r%   z/CompetitorLoyaltyService.get_competitor_loyalty   s]     %9%P%PQY[_[b[b%c")C8PQQ\vw\vy00??	J\vwwws   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
   COMPETITOR_LOYALTY_NOTr   update_competitor_loyaltyr   r   COMPETITOR_LOYALTY_UPDATE)r   r   requpdated_competitor_loyaltys       r   r-   z2CompetitorLoyaltyService.update_competitor_loyalty   s     C)>)M)McnnN^)_&)77?%T8;Z;Z[[ ::;U;c;ce  BF  BI  BI  J	 
 	S(2T2TUUs   B4B6r+   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr*   )r   delete_competitor_loyaltyr   r   r
   r,   COMPETITOR_LOYALTY_DELETE)r   r+   deleted_competitor_loyaltys      r   r2   z2CompetitorLoyaltyService.delete_competitor_loyalty$   sJ     %9%S%STacgcjcj%k")!x7V7VWWS(2T2TUUs   AAN)__name__
__module____qualname__r   r	   r   r   CompetitorLoyaltyCreater   intr%   r   CompetitorLoyaltyUpdater-   r2    r   r   r   r   
   s_    ' )9 Of6T6T OxC xVd6;Y;Y6Z VVC Vr   r   N)typingr   "app.api.competitor_loyalty_programr   *app.models.main.competitor_loyalty_programr   r   app.utils.schemas_utilsr   sqlalchemy.ormr   app.dependency.authanticationr	   app.locale.messagesr
   fastapir   r   r;   r   r   <module>rD      s)     5 b 2 " : ( !V Vr   