
    RgEi
                     J   d Z ddlmZmZ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 ddlmZ dd	lmZ dd
lmZ  e       Zej/                  dee          ee       ee	      fdedefd       Zej/                  d      d ee       ee	      fdededefd       Zy)z:
Endpoints pour que les partenaires consultent leur stock
    )	APIRouterDependsHTTPExceptionstatus)Session)get_db)Partner)PharmacyStock)Product)PharmacyStockWithProduct)get_current_partner)List/)response_modelcurrent_partnerdbc                 T  K   |j                  t        t        j                  j	                  d      t        j
                  j	                  d      t        j                  j	                  d            j                  t        t        j                  t        j                  k(        j                  t        j                  | j                  k(        j                         }g }|D ]B  \  }}}}t        j                  |      }||_        ||_        ||_        |j%                  |       D |S w)u7   
    Consultation du stock du partenaire connecté
    product_nameproduct_dosageproduct_form)queryr
   r   namelabeldosageformjoin
product_ididfilter
partner_idallr   from_ormr   r   r   append)	r   r   stocksresultstockr   r   r   
stock_datas	            J/home/www/lebenam.kofcorporation.com/app/api/v1/endpoints/partner/stock.pyget_my_stockr)      s      XX>*-.>*	
 d))WZZ7f  O$6$66	ce  F=C "9|^\-66u=
".
$2
!".
j!" Ms   D&D(z
/low-stock
   	thresholdc                   K   |j                  t        t        j                  j	                  d      t        j
                  j	                  d      t        j                  j	                  d            j                  t        t        j                  t        j                  k(        j                  t        j                  |j                  k(  t        j                  | k        j                         }g }|D ]H  \  }}}}|j                  |j                  |j                  ||||j                  |j                  d       J d|t!        |      dS w)z,
    Liste des produits en stock faible
    r   r   r   )r   r   r   r   r   quantity
unit_priceT)r   low_stock_itemscount)r   r
   r   r   r   r   r   r   r   r   r   r    r-   r!   r#   r.   len)	r+   r   r   r$   r%   r&   r   r   r   s	            r(   get_low_stockr2   .   s     XX>*-.>*	
 d))WZZ7f  O$6$66)+ 
ce  F=C 	9|^\((**(,(**
 		 !V s   EEN)__doc__fastapir   r   r   r   sqlalchemy.ormr   app.db.sessionr   app.models.partnerr	   app.models.pharmacy_stockr
   app.models.productr   app.schemas.pharmacy_stockr   app.core.securityr   typingr   routergetr)   intr2        r(   <module>rB      s    > = " ! & 3 & ? 1 	C%= >?&':;&/ @8 L&':;&/$$$ 	$ $rA   