
    /i              
          S SK JrJrJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJrJrJr  S SKJr  S SKJr  S SKJr  \" S	S
/S9r\R-                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R-                  S5      \" \5      \" \5      4S\S\	4S jj5       r\R-                  S5      \" \5      \" \5      4S\S\	4S jj5       r\R-                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R7                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R=                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R?                  S5      \" \5      \" \5      4S\S\S\S\	4S jj5       r g)     )	APIRouterDependsstatus)JSONResponse)get_db)Session)ProfessionalListStoreProfessionalUpdateProfessional	UserLogin)ProfessionalClass)SchoolClass)get_current_active_userz/professionalsProfessionals)prefixtags/professional_listsession_userdbc                    U R                   c  SOU R                   n[        US5      (       a  UR                  OS nS nU(       aQ  [        U5      R	                  SUS9n[        U[        5      (       a#  [        U5      S:  a  US   R                  S5      n[        U5      R	                  UU R                  U R                  U R                  US9nU R                   c  SOSn[        [        R                  SUUS	.S
9$ )Nr   customer_id)pager   id)r   items_per_pageidentification_numbernames	school_idz2Complete professionals list retrieved successfullyz$Professionals retrieved successfully   r   messagedatastatus_codecontent)r   hasattrr   r   get_all
isinstancelistlengetr   per_pager   r   r   r   HTTP_200_OK)	r   r   r   
page_valuer   r   schools_listresultr!   s	            SC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\professionals.pyindexr2      s    ',,4:K:P:PJ /6lM.R.R,**X\KI"2..A;.OlD))c,.?!.C$Q++D1Ir"**(11/EE%% + F GXF\F\FdB  kQG&&
     z/listc                     U (       a  U R                   OS n[        U5      R                  SUS9n[        [        R
                  SSUS.S9$ )Nr   )r   r   r   z)Professionals list retrieved successfullyr    r#   )r   r   r'   r   r   r-   )r   r   r   r0   s       r1   list_professionalsr5   .   sO    *6&&DIr"**Y*GF&&B
 r3   z/totalsc                    U (       a  U R                   OS nU (       a  U R                  OS nU (       a  U R                  OS n[        U5      R	                  X#US9n[        U[        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      S S.S9$ [        [        R                  S	S
US.S9$ )N)r   r   rol_idr   error  r!   zError getting totalsr    r#   r   z+Professionals totals retrieved successfully)r   r   r7   r   
get_totalsr(   dictr+   r   r   HTTP_500_INTERNAL_SERVER_ERRORr-   )r   r   r   r   r7   r0   s         r1   totalsr=   <   s    .:,**K*6&&DI$0\  dFr"--+ci-jF&$FJJx$8G$C==!::i1GH
 	
 &&D
 r3   z/storeprofessionalc                 `   U R                  5       nU(       a  UR                  OS n[        U5      R                  X4S9n[	        U[         5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      S S.S9$ [        [        R                  S	S
US.S9$ )N)r   r   r8   r9   r!   zError creating professionalr    r#      z*Professional and user created successfully)
r;   r   r   storer(   r+   r   r   r<   HTTP_201_CREATED)r>   r   r   professional_inputsr   r0   s         r1   rA   rA   V   s    &++- +7&&DIr"(()<(RF&$FJJx$8G$C==!::i1NO
 	
 ++C
 r3   z
/edit/{id}r   c                 v   [        U5      R                  U 5      n[        U[        5      (       ao  UR                  S5      (       d  UR                  S5      S:X  aD  [	        [
        R                  SUR                  S5      =(       d    UR                  SS5      S S.S9$ [	        [
        R                  SS	US.S9$ )
Nr8   r     r!   Professional not foundr    r#   r   z#Professional retrieved successfully)r   r+   r(   r;   r   r   HTTP_404_NOT_FOUNDr-   r   r   r   r0   s       r1   editrI   r   s    r"&&r*F&$VZZ%8%8FJJx<PT[<[11!::g.a&**YH`2a
 	
 &&<
 r3   z/delete/{id}c                    [        U5      R                  U 5      n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      S S.S9$ [        [        R                  SS	US.S9$ )
Nr   r8   rE   r!   rF   r    r#   r   z!Professional deleted successfully)	r   deleter(   r;   r+   r   r   rG   r-   rH   s       r1   rK   rK      s    r"))"-F&$FJJx$8G$C11!::i1IJ
 	
 &&:
 r3   z/update/{id}c                 t   UR                  SS9nSU;  a  U(       a  UR                  OS US'   [        U5      R                  X5      n[	        U[         5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      S S	.S
9$ [        [        R                  SSUS	.S
9$ )NT)exclude_unsetr   r   r8   r9   r!   zError updating professionalr    r#   r   z!Professional updated successfully)
r;   r   r   updater(   r+   r   r   r<   r-   )r   r>   r   r   rC   r0   s         r1   rN   rN      s    &++$+? --EQ<+A+AW[K(r"))"BF&$FJJx$8G$C==!::i1NO
 	
 &&:
 r3   N)!fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   &app.backend.classes.professional_classr    app.backend.classes.school_classr   app.backend.auth.auth_userr   professionalspostr2   r5   r=   rA   r+   intrI   rK   putrN    r3   r1   <module>r\      sB   . . * * " b b D 8 >
	
 CIPQhIi  zA  BH  zI - Y ov  < G189P1Qahioap Y W^   I%,-D%EU\]cUd  7  2 HELMdEeu|  ~D  vE )  kr  6 < ,34K,L\cdj\k S 	 RY  !, n%.56M.N^efl^m s ) T[  &, >"PWXoPp  AH  IO  AP s "4 I v}  #r3   