o
    iW                  !   @   s  d dl Z d dlZd dlZd dlmZ d dlmZmZmZm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZ e ZedZde d	Zeed
dddZdZdZdedededee fddZededededededededede	de	de	de	dedede	dfdededededee dee dee dee d ee d!ee d"ee d#ee d$ed%ed&ee fd'd(ZdS ))    N)Optional)	APIRouterForm
UploadFileFileHTTPException)CORSMiddleware)create_enginetext)
quote_pluszGOALSkill_99!@zmysql+pymysql://GOALSkill:z@localhost/Q_DB?charset=utf8mb4
      i  )	pool_sizemax_overflowpool_recyclez!/home/air/goalskill_t/back/img_q/z+/home/air/goalskill_t/back/img_explanation/file	base_pathsection_folderreturnc           	      C   s   | sdS t j||}t j|dd | j}d|v r |dd nd}t  d| }t j||}t|d}t	
| j| W d   |S 1 sJw   Y  |S )u.   이미지 저장 함수 (기존 로직 동일)NT)exist_ok.pngwb)ospathjoinmakedirsfilenamesplituuiduuid4openshutilcopyfileobjr   )	r   r   r   
target_dirr   file_extnew_filenametarget_pathbuffer r*   9/home/air/goalskill_sales/back/app/routers/quiz_router.py
save_image   s   
r,   z/goal-skill-t/api/save_question.chapterquestion_numberq_textchoice_typechoice_one_textchoice_two_textchoice_three_textchoice_four_textchoice_one_imgchoice_two_imgchoice_three_imgchoice_four_imganswerexplanation_textexplanation_filec              
      s  zd|  }d|  }d\}}}}|dkr|}|}|}|}n |r't |t|}|	r/t |	t|}|
r7t |
t|}|r?t |t|}d }|rIt |t|}t P}td| d}||||d td| d	}|||||||d
 td| d}||||d td| d}|||||d W d    n1 sw   Y  dd| ddW S  ty } ztd|  t	dt
|dd }~ww )Nsection_section) r>   r>   r>   r
   zINSERT INTO Q_DB.z& (question_number, Q) VALUES (:qn, :q))qnqz(
                INSERT INTO Example_DB.zy 
                (question_number, one, two, three, four) 
                VALUES (:qn, :v1, :v2, :v3, :v4)
            )r?   v1v2v3v4zINSERT INTO Correct_Answer_DB.z( (question_number, A) VALUES (:qn, :ans))r?   anszINSERT INTO Solution_DB.z6 (question_number, text, img) VALUES (:qn, :txt, :img))r?   txtimgsuccessz	Question z saved successfully.)statusmessagezError occurred: i  )status_codedetail)r,   BASE_IMG_Q_PATHBASE_IMG_EXP_PATHenginebeginr
   execute	Exceptionprintr   str)r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   table_suffixfolder_suffixval_oneval_two	val_threeval_foursol_img_pathconnsql_qsql_exsql_anssql_soler*   r*   r+   save_question2   sL   



rb   )r   r#   r    typingr   fastapir   r   r   r   r   fastapi.middleware.corsr   
sqlalchemyr	   r
   urllib.parser   routerpasswordDB_URLrO   rM   rN   rT   r,   postrb   r*   r*   r*   r+   <module>   s    	
