
    ph                         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 d dlmZmZ d dlmZ d d	lmZ  G d
 d      Zy)    )List)Session)HTTPException)schema)JWTPayloadSchema)TblBrandingAttributes)ComparativeAnalysisBaseTblComparativeAnalysis)CustomResponse)Messagesc                       e Zd ZdedefdZdej                  fdZde	fdZ
d Zdeej                     fd	Zd
e	fdZy)ComparativeAnalysisServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      K/var/www/html/retail-simulation-api/app/api/comparative_analysis/service.py__init__z#ComparativeAnalysisService.__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
   creater   commitr   r   COMPARATIVEE_ANALYSIS)r   r   created_datas      r   createdz"ComparativeAnalysisService.created   sT     .==g>P>P>RS%%lDGG<S(2P2PQQs   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
   getr   r   r   ComparativeAnalysisResponser   )r   r#   
geted_data	get_groups       r   getedz ComparativeAnalysisService.geted   sY     +//$''B
C8PQQ^hi^hQZ22AA)L^hiiis   4A$&AA$c                    K   | j                   j                  t        j                        j	                         }|st        dd      |D cg c]!  }t        j                  j                  |      # c}S c c}w wr%   )	r   queryr   	own_brandallr   r   OwnBrandr   )r   get_datar+   s      r   get_own_brand_dataz-ComparativeAnalysisService.get_own_brand_data%   s`     77==!6!@!@AEEGC8PQQKST8i..y98TTTs   AA;&A63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   comparative_idr   r   COMPARATIVEE_ANALYSIS_NOTr
   updater   r   COMPARATIVEE_ANALYSIS_UPDATE)r   r   requpdated_datas       r   updatedz"ComparativeAnalysisService.updated,   s     C2AA#..BRSL**2%T8;];]^^")),*E*E|UYU\U\]	 
 	S(2W2WXXs   B4B6r6   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr5   )r
   deleter   r   r   r7   COMPARATIVEE_ANALYSIS_DELETE)r   r6   deleted_datas      r   deletedz"ComparativeAnalysisService.deleted5   sE     -44^TWWM!x7Y7YZZS(2W2WXXs   AAN)__name__
__module____qualname__r   r   r   r   ComparativeAnalysisCreater"   intr,   r3   r   ComparativeAnalysisUpdater<   rA    r   r   r   r      se    ' )9 RF$D$D Rj3 jUYD)I)I$J YY3 Yr   r   N)typingr   sqlalchemy.ormr   fastapir   app.api.comparative_analysisr   app.dependency.authanticationr   #app.models.main.branding_attributesr   $app.models.main.comparative_analysisr	   r
   app.utils.schemas_utilsr   app.locale.messagesr   r   rH   r   r   <module>rR      s,     " ! / : E ` 2 (.Y .Yr   