
    CgEiX              
          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 ddlmZ ddlmZmZmZmZmZmZ dd	lmZ dd
lmZ  e       Zej9                  dee          ee       ee	      fdedefd       Zej=                  deej>                         ee       ee	      fdededefd       Z ej9                  de       ee       ee	      fde!dedefd       Z"ejG                  de       ee       ee	      fde!dededefd       Z$ejK                  dejL                         ee       ee	      fde!dedefd       Z'ej=                  deej>                         ee       ee	      fde!dededefd       Z(ejG                  de       ee       ee	      fde!dededefd       Z)ejK                  dejL                         ee       ee	      fde!dedefd       Z*y )!z4
Endpoints admin pour la gestion des quiz flexibles
    )	APIRouterDependsHTTPExceptionstatus)Session)get_db)User)QuizCategory)CategoryQuestion)QuizCategoryCreateQuizCategoryUpdateQuizCategoryResponseCategoryQuestionCreateCategoryQuestionUpdateCategoryQuestionResponse)get_current_admin)List/)response_modelcurrent_admindbc                 T   K   |j                  t              j                         }|S w)u8   Liste de toutes les catégories de quiz (avec questions))queryr
   all)r   r   
categoriess      S/home/www/lebenam.kofcorporation.com/app/api/v1/endpoints/admin/flexible_quizzes.pyget_all_categoriesr      s%      ,'++-Js   &()r   status_codecategory_datac                    K   t        di | j                         }|j                  |       |j                          |j	                  |       |S w)u+   Création d'une nouvelle catégorie de quiz )r
   dictaddcommitrefresh)r   r   r   new_categorys       r   create_categoryr'   !   sE       7-"4"4"67LFF<IIKJJ|s   AAz/{category_id}category_idc                    K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      |S w)u-   Détails d'une catégorie de quiz spécifique   Catégorie de quiz non trouvéer   detail)r   r
   filteridfirstr   r   HTTP_404_NOT_FOUNDr(   r   r   categorys       r   get_category_detailsr3   .   sO      xx%,,\__-KLRRTH(A(AJkllOs   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'une catégorie de quizr*   r+   Texclude_unset)r   r
   r-   r.   r/   r   r   r0   r"   itemssetattrr$   r%   )r(   r   r   r   r2   update_datafieldvalues           r   update_categoryr<   :   s      xx%,,\__-KLRRTH(A(AJkll$$4$8K#))+ (u%'( IIKJJxO   B;B=)r   c                   K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      |j                  |       |j                          ddiS w)u\   Suppression d'une catégorie de quiz (supprime aussi les questions et tentatives associées)r*   r+   messageu*   Catégorie de quiz supprimée avec succès)
r   r
   r-   r.   r/   r   r   r0   deleter$   r1   s       r   delete_categoryrA   N   sk      xx%,,\__-KLRRTH(A(AJkllIIhIIKCDD   BBz/{category_id}/questionsquestion_datac                 h  K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      t        dd| i|j                         }|j                  |       |j                          |j                  |       |S w)u.   Ajout d'une question à une catégorie de quizr*   r+   r(   r!   )r   r
   r-   r.   r/   r   r   r0   r   r"   r#   r$   r%   )r(   rC   r   r   r2   new_questions         r   create_questionrF   a   s      xx%,,\__-KLRRTH(A(AJkll#TT}?Q?Q?STLFF<IIKJJ|s   B0B2z/questions/{question_id}question_idc                 ~  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'une question spécifique   Question non trouvéer+   Tr5   )r   r   r-   r.   r/   r   r   r0   r"   r7   r8   r$   r%   )rG   rC   r   r   questionr9   r:   r;   s           r   update_questionrK   s   s      xx()001A1D1D1STZZ\H(A(AJabb$$4$8K#))+ (u%'( IIKJJxOr=   c                   K   |j                  t              j                  t        j                  | k(        j	                         }|st        t        j                  d      |j                  |       |j                          ddiS w)u&   Suppression d'une question spécifiquerI   r+   r?   u    Question supprimée avec succès)
r   r   r-   r.   r/   r   r   r0   r@   r$   )rG   r   r   rJ   s       r   delete_questionrM      so      xx()001A1D1D1STZZ\H(A(AJabbIIhIIK9::rB   N)+__doc__fastapir   r   r   r   sqlalchemy.ormr   app.db.sessionr   app.models.userr	   app.models.flexible_quizr
   app.models.flexible_questionr   app.schemas.flexible_quizr   r   r   r   r   r   app.core.securityr   typingr   routergetr   postHTTP_201_CREATEDr'   intr3   putr<   r@   HTTP_204_NO_CONTENTrA   rF   rK   rM   r!       r   <module>r`      s   > = " !   1 9  0 	 C%9 :;!"34&/ < S!56CZCZ[ ""34&/
%

 	
 \
 -AB ""34&/			 		 C	 -AB ""34&/	%  		 C& V-G-GH ""34&/EEE 	E IE$ '8P^d^u^uv ""34&/	)  		 w" &7OP ""34&/	)  		 Q& )v7Q7QR ""34&/;;; 	; S;r_   