
    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)TblVendorScorecardVendorScorecardBase)CustomResponse)Sessionc                       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)VendorScorecardServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      G/var/www/html/retail-simulation-api/app/api/vendor_scorecard/service.py__init__zVendorScorecardService.__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_vendor_scorecardr   commitr
   r   VENDOR_SCORECARD)r   r   created_vendor_scorecards      r   r   z.VendorScorecardService.create_vendor_scorecard   sV     #6#E#EgFXFXFZ#[ 223KTWWUS(2K2KLLs   A9A;vendor_get_idc                    K   t        j                  || j                        }|st        dd      t        j
                  j                  |      S w)N  zVendor Get ID Not Foundstatus_codedetail)r   get_vendor_scorecardr   r   r   VendorScorecardResponser   )r   r!   new_get_vendor_scorecards      r   r'   z+VendorScorecardService.get_vendor_scorecard   sI     #5#J#J=Z^ZaZa#b 'C8QRR--<<=UVVs   AAc                 &  K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |D cg c]!  }t        j                  j                  |      # c}S c c}w w)Nr#   zGet Group ID not foundr$   )
r   queryr   filtergroup_idallr   r   r(   r   )r   r-   new_get_group_vendor_scorecard	get_groups       r   get_group_vendor_scorecardz1VendorScorecardService.get_group_vendor_scorecard   sz     )-7I)J)Q)QRdRmRmqyRy)z)~)~  *A&-C8PQQZxyZxY..==iHZxyyys   A!B#&B	Bc                 \  K   |D ]o  }t        j                  |j                               }|t        dt        j
                        c S t        j                  |j                  || j                         q | j                  j                          t        dt        j                        S wNz-1r   r   )r	   r   r   r
   r   VENDOR_SCORECARD_NOTr   update_vendor_scorecordvendor_scorecard_idr   r   VENDOR_METRICS_PRIORITY_UPDATE)r   r   requpdated_vendor_scorecards       r   update_vendor_scorecardz.VendorScorecardService.update_vendor_scorecard!   s     C':'I'I#..JZ'[$'/%T8;X;XYY667O7c7ce}  @D  @G  @G  H	 
 	S(2Y2YZZs   B*B,r6   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr3   )r   deletee_vendore_scorecardr   r
   r   VENDOR_METRICS_PRIORITY_NOTVENDOR_METRICS_PRIORITY_DELETE)r   r6   deleted_vendor_scorecards      r   delete_vendor_scorecardz.VendorScorecardService.delete_vendor_scorecard*   sJ     #5#O#OPceielel#m '!x7[7[\\S(2Y2YZZs   AAN)__name__
__module____qualname__r   r   r   r   VendorScorecardCreater   intr'   r1   r   VendorScorecardUpdater:   r@    r   r   r   r   
   se    ' )9 MF4P4P MWs Wz[D9U9U4V [[ [r   r   N)typingr   fastapir   app.api.vendor_scorecardr   app.dependency.authanticationr   app.locale.messagesr    app.models.main.vendor_scorecardr   r	   app.utils.schemas_utilsr
   sqlalchemy.ormr   r   rG   r   r   <module>rP      s)     ! + : ( T 2 "$[ $[r   