
    6i,              
          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JrJr  S S	KJr  \" S
S/S9r\R5                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R9                  S5      S\" \5      \" \5      4S\S\S\	4S jj5       r\R5                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r\R9                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r \RC                  S5      \" \5      \" \5      4S\S\S\S\	4S jj5       r"\RG                  S5      \" \5      \" \5      4S\S\S\	4S jj5       r#g)    )	APIRouterDependsstatus)JSONResponse)get_db)Session)	UserLogin
CourseListStoreCourseUpdateCourse)CourseClass)SchoolClass)CourseModelProfessionalModelProfessionalTeachingCourseModel)get_current_active_userz/coursesCourses)prefixtags/coursesession_userdbc                 j
   U(       a  UR                   OS nU(       a  UR                  OS nU(       aX  U(       dQ  [        U5      R                  SUS9n[	        U[
        5      (       a#  [        U5      S:  a  US   R                  S5      n/ nUR                  (       Ga  [        SUR                   S35        UR                  [        5      R                  [        R                  UR                  :H  5      R                  5       n[        SU Vs/ s H%  oR                  UR                  UR                   4PM'     sn 35        UR                  [        5      R                  [        R                  UR                  :H  5      R#                  5       n	U	(       a  UR                  [$        5      R                  [$        R&                  U	R                  :H  [$        R(                  S:H  5      R                  5       n
[        SU	R                   SU
 Vs/ s H0  oR                  UR*                  UR,                  UR(                  4PM2     sn 35        U
 Vs/ s H  oR,                  PM     nn[        S	U 35        U(       GaV  U R.                  c  SOU R.                  n[1        U5      R                  XR2                  S S
9n[	        U[
        5      (       aD  U Vs/ s H  oR                  S5      U;   d  M  UPM     nn[5        [6        R8                  SSUS.S9$ [	        U[:        5      (       a  SU;   a  US    Vs/ s H  oR                  S5      PM     nnUS    Vs/ s H  oR                  S5      U;   d  M  UPM     nn[5        [6        R8                  SS[        U5      [        U5      S:  a  SOSUR                  SS5      U R2                  US.S.S9$ Uci  U R.                  c  SOSn[5        [6        R8                  SUU R.                  c  / O.SSU R.                  (       a  U R.                  OSU R2                  / S.S.S9$ U R.                  c  SOU R.                  n[1        U5      R                  XR2                  U R<                  U R*                  US9n[	        U[:        5      (       aA  UR                  S5      S:X  a,  [5        [6        R>                  SUR                  SS5      S S.S9$ U R.                  c  SOSn[5        [6        R8                  SUUS.S9$ s  snf s  snf s  snf s  snf s  snf s  snf )Nr   pagecustomer_ididz'DEBUG - Buscando profesional con RUT: ''z#DEBUG - Profesionales encontrados: zDEBUG - Professional ID: z, PTC records: zDEBUG - Extracted course IDs: )r   items_per_page	school_id   zCourses retrieved successfullyr   messagedatastatus_codecontentr%      current_page)total_itemstotal_pagesr*   r    r%   z,Complete courses list retrieved successfully)r   r    r   teaching_idr!   r   error  r$   Error) r   r!   r   get_all
isinstancelistlengetrutprintqueryr   filteridentification_numberallr   namesfirstr   professional_iddeleted_status_idr-   	course_idr   r   per_pager   r   HTTP_200_OKdictcourse_nameHTTP_404_NOT_FOUND)r   r   r   r   r!   schools_listprofessional_course_idsall_professionalspprofessionalptc_recordsrptc
page_valueall_coursesccourse_dataavailable_course_idsr$   results                       MC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routers\courses.pyindexrU      s    /;,**K*6&&DI9"2..A;.OlD))c,.?!.C$Q++D1I !78H8H7IKLHH%67>>33|7G7GG

#% 	 	3gx4ygxbcddA<S<SUVU\U\5]gx4y3z{|xx 129933|7G7GG

%' 	 ((#BCJJ/??<??R/AAQF ce 
 -loo->o  Q\  O]  Q\  LMPTPTVWVcVcefepeprs  sF  sF  PG  Q\  O]  N^  _  `@K&L}}#&L23J2KLM  ++-Q6;;
!"o--:ooim-n k4((&1\kUU4[D[5[1kK\"..!?'  T**v/D9DV9L#M9LAEE$K9L #M&1&&9d&9UU4[Lc=c1&9Kd"..!?'*;'7,/,<q,@qa(3(J*0// +
   DJKKDW@]}**"$kk1#$#$39;;FKKA&,oo8

 	
 kk)v{{J_$$*__]c]o]o  ~D  ~P  ~P  \e$  fF&$FJJx$8G$C11!::i9
 	
 AG@S<YyG&&
 m 5z O]&L ] $Nds0   ,T
7TT!T&1T&7T+T06T0z/listNr-   c                 ~   U(       a  UR                   OS nUc  [        [        R                  SS/ S.S9$ [	        U5      R                  X0S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$ )Nr"   z#Courses list retrieved successfullyr#   r&   )r!   r-   r   r.   r/   r$   r0   )
r!   r   r   rB   r   get_all_listr2   rC   r5   rE   )r-   r   r   r!   rS   s        rT   rW   rW      s     +7&&DI **@
 	
 _))I)WF&$FJJx$8G$C11!::i9
 	
 &&<
     z/storec                     U R                  5       nU(       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XSS'   [        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   r   r   r!   r   r.     r$   zError creating courser#   r&      zCourse created successfully)rC   r   r   r1   r2   r3   r4   r5   r   storer   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATED)r   r   r   course_inputsr   r!   rF   rS   s           rT   r\   r\      s    KKMM /;,**KI"2..A;.OlD))c,.?!.C$Q++D1I "++_""=1F&$FJJx$8G$C==!::i1HI
 	
 ++4
 rX   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$ )
Nr.   r   r/   r$   Course not foundr#   r&   r"   zCourse retrieved successfully)r   r5   r2   rC   r   r   rE   rB   r   r   r   rS   s       rT   editrc      s    _  $F&$VZZ%8%8FJJx<PT[<[11!::g.[&**YHZ2[
 	
 &&6
 rX   z/update/{id}c                 *   UR                  SS9nU(       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SU;  a  XdS'   [        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   r   r!   r   r.   rZ   r$   zError updating courser#   r&   r"   zCourse updated successfully)rC   r   r   r1   r2   r3   r4   r5   r   updater   r   r]   rB   )	r   r   r   r   r_   r   r!   rF   rS   s	            rT   rf   rf      s
   KKdK3M /;,**KI"2..A;.OlD))c,.?!.C$Q++D1I -'%.k"_##B6F&$FJJx$8G$C==!::i1HI
 	
 &&4
 rX   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   r.   r/   r$   ra   r#   r&   r"   zCourse deleted successfully)	r   deleter2   rC   r5   r   r   rE   rB   rb   s       rT   rh   rh     s    _##B'F&$FJJx$8G$C11!::i1CD
 	
 &&4
 rX   )$fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r    app.backend.classes.course_classr    app.backend.classes.school_classr   app.backend.db.modelsr   r   r   app.backend.auth.auth_userr   coursespostrU   r5   intrW   r\   rc   putrf   rh    rX   rT   <module>rw      s   . . * * " P P 8 8 a a >


 	c8?@W8Xhopvhw o* oI o^e o ob 	W$(GLcDdt{  }C  uD "c "	 "jq " "H 	h9@AX9Yipqwix !+ !Y !_f ! !F 	\,34K,L\cdj\k S 	 RY  , 	^DKLcDdt{  }C  uD "s "L "	 "jq " "H 	.56M.N^efl^m s ) T[   rX   