+
    bi                     v   R t ^ RIHtHtHtHt ^ RIHt ^ RIH	t	H
t
 ^ RIHt ^ RIHt ^ RIHtHtHt ]! RR.R	7      t]P)                  R
]	],          R7      ]! ^ ^ R7      ]! ^d^RR7      RR]! ]4      3R R ll4       t]P)                  R]R7      ]! ]4      3R R ll4       t]P/                  R
]^R7      ]! ]4      3R R ll4       t]P3                  R]R7      ]! ]4      3R R ll4       t]P7                  R^R7      ]! ]4      3R R ll4       t]P/                  R]R7      ]! ]4      3R R ll4       tR# ) z(
Routes API pour la gestion des clients
)	APIRouterDependsHTTPExceptionQuery)Session)ListOptional)get_db)Client)ClientCreateClientUpdateClientResponsez/api/clientsClients)prefixtags/)response_model)gei  )r   leNc          
          V ^8  d   QhR\         R\         R\        \         ,          R\        \        ,          R\        /# )   skiplimitactif	recherchedb)intr   strr   )formats   "UC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\app\routes\clients.py__annotate__r       sB      
 C= }	
 	    c                   VP                  \        4      pVe#   VP                  \        P                  V8H  4      pV'       d   VP                  \        P                  P                  RV R24      \        P                  P                  RV R24      ,          \        P                  P                  RV R24      ,          4      pVP                  V 4      P                  V4      P                  4       pV# )u9   
Récupère la liste des clients avec filtres optionnels
%)queryr
   filterr   raison_socialeilikevillenom_contactoffsetr   all)r   r   r   r   r   r$   clientss   &&&&&  r   lire_clientsr-      s     HHVE V\\U23""((1YKq)9:\\!I;a 013%%)A&679
 ll4 &&u-113GNr!   z/{client_id}c                0    V ^8  d   QhR\         R\        /# r   	client_idr   r   r   )r   s   "r   r    r    *   s      3 G r!   c                    VP                  \        4      P                  \        P                  V 8H  4      P	                  4       pV'       g   \        RRR7      hV# )u-   
Récupère un client spécifique par son ID
     Client non trouvéstatus_codedetail)r$   r
   r%   idfirstr   )r0   r   clients   && r   lire_clientr;   )   sE    
 XXf$$VYY)%;<BBDF4HIIMr!   )r   r6   c                0    V ^8  d   QhR\         R\        /# )r   r:   r   )r   r   )r   s   "r   r    r    6   s       7 r!   c                   V P                   '       da   VP                  \        4      P                  \        P                   V P                   8H  4      P	                  4       '       d   \        RRR7      h\        R/ V P                  4       B pVP                  V4       VP                  4        VP                  V4       V# )u   
Crée un nouveau client
i  u   Ce SIRET existe déjàr5    )
siretr$   r
   r%   r9   r   
model_dumpaddcommitrefresh)r:   r   	db_clients   && r   creer_clientrE   5   s     |||88F""6<<6<<#?@FFHHC8PQQ -**,-IFF9IIKJJyr!   c                <    V ^8  d   QhR\         R\        R\        /# )r   r0   client_updater   )r   r   r   )r   s   "r   r    r    I   s&       	r!   c                f   VP                  \        4      P                  \        P                  V 8H  4      P	                  4       pV'       g   \        RRR7      hVP                  RR7      pVP                  4        F  w  rV\        W5V4       K  	  VP                  4        VP                  V4       V# )z
Modifie un client existant
r3   r4   r5   T)exclude_unset)r$   r
   r%   r8   r9   r   r@   itemssetattrrB   rC   )r0   rG   r   rD   update_datafieldvalues   &&&    r   modifier_clientrO   H   s      ''		Y(>?EEGI4HII  ***>K#))+	%( , IIKJJyr!   )r6   c                0    V ^8  d   QhR\         R\        /# r/   r1   )r   s   "r   r    r    a   s      s  r!   c                    VP                  \        4      P                  \        P                  V 8H  4      P	                  4       pV'       g   \        RRR7      h^ Vn        VP                  4        R# )z!
Archive un client (soft delete)
r3   r4   r5   N)r$   r
   r%   r8   r9   r   r   rB   r0   r   rD   s   && r   archiver_clientrS   `   sU    
  ''		Y(>?EEGI4HII IOIIKr!   z/{client_id}/restaurerc                0    V ^8  d   QhR\         R\        /# r/   r1   )r   s   "r   r    r    q   s        r!   c                J   VP                  \        4      P                  \        P                  V 8H  4      P	                  4       pV'       g   \        RRR7      h^Vn        VP                  4        VP                  V4       VP                  Vn	        VP                  Vn
        V# )u   
Restaure un client archivé
r3   r4   r5   )r$   r
   r%   r8   r9   r   r   rB   rC   nom_complet_contactville_completerR   s   && r   restaurer_clientrX   p   s    
  ''		Y(>?EEGI4HIIIOIIKJJy %.$A$AI!(77Ir!   )__doc__fastapir   r   r   r   sqlalchemy.ormr   typingr   r   app.databaser	   
app.modelsr
   app.schemas.clientr   r   r   routergetr-   r;   postrE   putrO   deleterS   rX   r>   r!   r   <module>re      sI   = < " !   I I	.	{	; C^ 45aAsqT*#&/ 64 N>:.5fo  ; SSA5<V_  B$ N>: &/ ;. ~3/29&/  0 %nE3:6?  Fr!   