
    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	m
Z
 d dlmZ d dlmZ d dlmZ  G d	 d
      Zy)    )List)HTTPException)Session)schema)ProjectedMarketShareBaseTblProjectedMarketShare)CustomResponse)JWTPayloadSchema)Messagesc                   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)ProjectedMarketShareServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      M/var/www/html/retail-simulation-api/app/api/projected_market_share/service.py__init__z$ProjectedMarketShareService.__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_project_marketr   commitr	   r   PROJECTED_MARKET_SHARE)r   r   created_projecteds      r   create_projectedz,ProjectedMarketShareService.create_projected   sV     4CCGDVDVDXY556GQS(2Q2QRRs   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_projected_marketr   r   r   ProjectedMarketShareResponser   )r   r"   new_get_projected	get_groups       r   get_projectedz)ProjectedMarketShareService.get_projected   s]     3HHSWSZSZ[ C8PQQ_pq_pR[33BB9M_pqqqs   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-1)r   r   r   )r   r   r   
project_idr	   r   PROJECTED_MARKET_SHARE_NOTr   update_projected_marketr   r   PROJECTED_MARKET_SHARE_UPDATE)r   r   requpdated_projecteds       r   update_projectedz,ProjectedMarketShareService.update_projected   s     C 8 G GHX Y ++3%dH4W4WXX#;;<M<X<XZkmqmtmtu	 
 	S(2X2XYYs   B4B6r-   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr,   )r   delete_projected_marketr   r	   r   r.   PROJECTED_MARKET_SHARE_DELETE)r   r-   deleted_projected_markets      r   r5   z3ProjectedMarketShareService.delete_projected_market$   sJ     #:#R#RS]_c_f_f#g '!$0S0STTS(2X2XYYs   AAN)__name__
__module____qualname__r   r
   r   r   ProjectedMarketShareCreater!   intr*   r   ProjectedMarketShareUpdater3   r5    r   r   r   r   
   s_    ' )9 SV-N-N Sr3 rZT&2S2S-T ZZs Zr   r   N)typingr   fastapir   sqlalchemy.ormr   app.api.projected_market_sharer   &app.models.main.projected_market_sharer   r   app.utils.schemas_utilsr	   app.dependency.authanticationr
   app.locale.messagesr   r   r>   r   r   <module>rG      s)     ! " 1 d 2 : (Z Zr   