
    CgEi              
       p   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mZ ddlmZmZmZ ddlmZmZ dd	lmZ  e       Zej3                  d
ee         d ee       ee	      fdededefd       Zej7                  d
e       ee       ee	      fdededefd       Zej3                  de       ee       ee	      fdededefd       Zej?                  de       ee       ee	      fdedededefd       Z ejC                  d       ee       ee	      fdededefd       Z"y)z1
Endpoints admin pour la gestion des partenaires
    )	APIRouterDependsHTTPExceptionstatus)Session)get_db)User)PartnerPartnerType)PartnerCreatePartnerUpdatePartnerResponse)get_current_adminget_password_hash)List/)response_modelNpartner_typecurrent_admindbc                    K   |j                  t              }| r"|j                  t        j                  | k(        }|j	                  t        j
                  j                               j                         }|S w)z<
    Liste de tous les partenaires (filtrable par type)
    )queryr
   filterr   order_by
created_atdescall)r   r   r   r   partnerss        K/home/www/lebenam.kofcorporation.com/app/api/v1/endpoints/admin/partners.pyget_partnersr       s]      HHWEW11\AB~~g005578<<>HOs   A7A9partner_datac                   K   |j                  t              j                  t        j                  | j                  k(        j	                         }|rt        t        j                  d      | j                  t        j                  k(  r3| j                  | j                  t        t        j                  d      t        | j                  | j                  | j                  | j                  | j                  | j                  | j                  t!        | j"                              }|j%                  |       |j'                          |j)                  |       |S w)u+   
    Création d'un nouveau partenaire
    u(   Cette adresse email est déjà utiliséestatus_codedetailu:   Les coordonnées GPS sont obligatoires pour les pharmacies)namer   emailphonephysical_addresslatitude	longitudepassword)r   r
   r   r'   firstr   r   HTTP_400_BAD_REQUESTr   r   PHARMACYr*   r+   r&   r(   r)   r   r,   addcommitrefresh)r!   r   r   existing_partnernew_partners        r   create_partnerr5   !   s#     xx(//+++eg  33=
 	
   K$8$88  (L,B,B,J"77S  !..    %66&&(("<#8#89	K FF;IIKJJ{s   EEz/{partner_id}
partner_idc                    K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      |S w)u"   
    Détails d'un partenaire
       Partenaire non trouvér#   )r   r
   r   idr-   r   r   HTTP_404_NOT_FOUNDr6   r   r   partners       r   get_partnerr=   O   sV      hhw&&wzzZ'?@FFHG11+
 	

 Ns   A#A%c                 ~  K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      |j                  d      }|j                         D ]  \  }}t        |||        |j                          |j                  |       |S w)u&   
    Mise à jour d'un partenaire
    r8   r#   T)exclude_unset)r   r
   r   r9   r-   r   r   r:   dictitemssetattrr1   r2   )r6   r!   r   r   r<   update_datafieldvalues           r   update_partnerrF   b   s      hhw&&wzzZ'?@FFHG11+
 	
 ##$#7K#))+ 'u&' IIKJJwNs   B;B=c                   K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      |j                  |       |j                          dddS w)z%
    Suppression d'un partenaire
    r8   r#   Tu!   Partenaire supprimé avec succès)r   message)
r   r
   r   r9   r-   r   r   r:   deleter1   r;   s       r   delete_partnerrJ   ~   sx      hhw&&wzzZ'?@FFHG11+
 	

 IIgIIK 6 s   BB	)#__doc__fastapir   r   r   r   sqlalchemy.ormr   app.db.sessionr   app.models.userr	   app.models.partnerr
   r   app.schemas.partnerr   r   r   app.core.securityr   r   typingr   routergetr    postr5   intr=   putrF   rI   rJ        r   <module>r[      s   > = " !   3 M M B 	C_ 56 $!"34&/ 	 7  S1 ""34&/+++ 	+ 2+Z OO< ""34&/ 	 =$ OO< ""34&/	  		 =6  ""34&/ 	  rZ   