
    i!              
          d dl 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mZmZ d dlmZ d dlmZ  edd	g
      Zej)                  d       ee       ee      fdedede	fd       Zej-                  d       ee       ee      fdede	fd       Zej)                  d       ee       ee      fdedede	fd       Zej-                  d       ee       ee      fdedede	fd       Zej7                  d       ee       ee      fdededede	fd       Zej;                  d       ee       ee      fdedede	fd       Zy)    )	APIRouterDependsstatus)JSONResponse)get_db)Session)	UserLoginTeachingListStoreTeachingUpdateTeaching)TeachingClass)get_current_active_userz
/teachings	Teachings)prefixtags/teachingsession_userdbc                 6   ddl m} |r|j                  nd }d }|rK ||      j                  d|      }t	        |t
              r"t        |      dkD  r|d   j                  d      }|e| j                  dnd}t        t        j                  d|| j                  g n)dd| j                  r| j                  nd| j                  g d	d
      S | j                  dn| j                  }t        |      j                  || j                  | j                  |      }	t	        |	t              rC|	j                  d      dk(  r/t        t        j                   d|	j                  dd      d d
      S | j                  dnd}t        t        j                  d||	d
      S )Nr   SchoolClasspagecustomer_ididz.Complete teachings list retrieved successfullyz Teachings retrieved successfully      )total_itemstotal_pagescurrent_pageitems_per_pagedatar   messager#   status_codecontent)r   r"   teaching_name	school_idr   error  r%   Error) app.backend.classes.school_classr   r   get_all
isinstancelistlengetr   r   r   HTTP_200_OKper_pager   r)   dictHTTP_404_NOT_FOUND)
r   r   r   r   r   r*   schools_listr%   
page_valueresults
             [C:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\routers\teachings.pyindexr<      s   < /;,**KI"2..A;.OlD)c,.?!.C$Q++D1I FNmmF[B  bD**"&mm3#$#$5=]]HMM&.&7&7:

 	
 mm+J2&&JxGXGXhph~h~  KT&  UF&$FJJx$8G$C11!::i9
 	
 CK--BW>]G&&
     z/listc                 (   ddl m} | r| j                  nd }d }|rK ||      j                  d|      }t	        |t
              r"t        |      dkD  r|d   j                  d      }|t        t        j                  ddg d      S t        |      j                  |	      }t	        |t              rC|j                  d
      dk(  r/t        t        j                  d|j                  dd      d d      S t        t        j                  dd|d      S )Nr   r   r   r   r   z%Teachings list retrieved successfullyr$   r&   )r*   r   r+   r,   r%   r-   )r.   r   r   r/   r0   r1   r2   r3   r   r   r4   r   get_all_listr6   r7   )r   r   r   r   r*   r8   r:   s          r;   r?   r?   D   s   < /;,**KI"2..A;.OlD)c,.?!.C$Q++D1I **B
 	
 2++i+@F&$FJJx$8G$C11!::i9
 	
 &&>
 r=   z/storec                    ddl m} | j                         }|r|j                  nd }d }|rK ||      j	                  d|      }t        |t              r"t        |      dkD  r|d   j                  d      }||d<   t        |      j                  |      }t        |t              rC|j                  d      dk(  r/t        t        j                  d|j                  d	d
      d d      S t        t        j                  dd|d      S )Nr   r   r   r   r*   r   r+     r%   zError creating teachingr$   r&      zTeaching created successfully)r.   r   r6   r   r/   r0   r1   r2   r3   r   storer   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_201_CREATED)	r   r   r   r   teaching_inputsr   r*   r8   r:   s	            r;   rC   rC   p   s    <mmoO /;,**KI"2..A;.OlD)c,.?!.C$Q++D1I $-OK 2$$_5F&$FJJx$8G$C==!::i1JK
 	
 ++6
 r=   z
/edit/{id}r   c                 b   t        |      j                  |       }t        |t              rg|j                  d      s|j                  d      dk(  rBt	        t
        j                  d|j                  d      xs |j                  dd      d d      S t	        t
        j                  dd	|d      S )
Nr+   r   r,   r%   Teaching not foundr$   r&   r   zTeaching retrieved successfully)r   r3   r0   r6   r   r   r7   r4   r   r   r   r:   s       r;   editrJ      s    2""2&F&$VZZ%8FJJx<PT[<[11!::g.]&**YH\2]
 	
 &&8
 r=   z/update/{id}c                    ddl m} |j                  d      }|r|j                  nd }d }|rK ||      j	                  d|      }t        |t              r"t        |      dkD  r|d   j                  d      }d|vr||d<   t        |      j                  | |      }	t        |	t              rC|	j                  d      d	k(  r/t        t        j                  d
|	j                  dd      d d      S t        t        j                  dd|	d      S )Nr   r   T)exclude_unsetr   r   r*   r   r+   rA   r%   zError updating teachingr$   r&   r   zTeaching updated successfully)r.   r   r6   r   r/   r0   r1   r2   r3   r   updater   r   rD   r4   )
r   r   r   r   r   rF   r   r*   r8   r:   s
             r;   rM   rM      s   <mm$m7O /;,**KI"2..A;.OlD)c,.?!.C$Q++D1I /)'0$2%%b/:F&$FJJx$8G$C==!::i1JK
 	
 &&6
 r=   z/delete/{id}c                    t        |      j                  |       }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      d d      S t        t        j                  dd	|d      S )
Nr   r+   r,   r%   rH   r$   r&   r   zTeaching deleted successfully)	r   deleter0   r6   r3   r   r   r7   r4   rI   s       r;   rO   rO      s    2%%b)F&$FJJx$8G$C11!::i1EF
 	
 &&6
 r=   N)fastapir   r   r   fastapi.responsesr   app.backend.db.databaser   sqlalchemy.ormr   app.backend.schemasr	   r
   r   r   "app.backend.classes.teaching_classr   app.backend.auth.auth_userr   	teachingspostr<   r3   r?   rC   intrJ   putrM   rO    r=   r;   <module>r\      s   . . * * " V V < >
	
 <CD[<\lstzl{ 3L 3	 3bi 3 3j w+23J+K[bci[j )y )QX ) )V =DE\=]mtu{m| #M # #cj # #J |,34K,L\cdj\k S 	 RY  , ~HOPgHhx  AG  yH $s $n $I $nu $ $L .!.56M.N^efl^m s ) T[  "r=   