
    mh                     2   d dl Z d dlmZmZmZmZmZmZ d dlZd dl	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 d d	lmZ  e       Z e         e j4                  d
d      Z e j8                  ed       ej;                  d       ed       ed        ed       ed       ed       ed       ed       ed       ee      f	dedededede de dedede!fd       Z"ejG                  d       ee      fde!fd       Z$ejK                  d       ed       ed       ed       ed       ed       ed       ed       ed       ee      f	dededededede de dedede!fd       Z&ejO                  d       ee      fdede!fd       Z(y)    N)	APIRouterDependsHTTPException
UploadFileFileForm)"disable_installed_extensions_check)check_user_is_admin)select)Program)Category)admin)GeneralStateFILE_STORAGE_PATHfilesT)exist_okz	/programs.namedurationdescriptionprerequisitespriceprice_discountcategory_idimagedependenciesc	                    |\  }	}
|	j                  t              j                  t        j                  |k(        j	                         }|st        dd      | ||||||d}|rt        j                  j                  |j                        d   }t        j                          | }t        j                  j                  t        |      }t        |d      5 }|j                  |j                   j#                                d d d        ||d<   t%        di |}|	j'                  |       |	j)                          |	j+                  |       |S # 1 sw Y   MxY w)	N  Category not foundstatus_codedetail)r   r   r   r   r   r   r      wbr    )queryr   filteridfirstr   ospathsplitextfilenameuuiduuid4joinr   openwritefilereadr   addcommitrefresh)r   r   r   r   r   r   r   r   r   dbr   categoryprogram_dataextr,   filepathfprograms                     b/Users/theessential/Documents/Github/KofAcademy/kof-academy-backend/app/routers/admins/programs.pycreate_programr?      s&    IBxx!(()CDJJLH4HII "&("L ggu~~.q1jjl^C5)77<< 18<(D! 	'QGGEJJOO%&	' (W%%GFF7OIIKJJwN	' 	's   *EEc                     | \  }}|j                  t        t              j                  t        j                  t
        j                  k(              }|j                         j                         S )N)	executer   r   wherestater   ACTIVEscalarsall)r   r7   r   results       r>   list_programsrH   I   sM    IBZZw--gmm|?R?R.RSTF>>!!    z/programs/{program_id}
program_idc
                    |	\  }
}|
j                  t              j                  t        j                  | k(        j	                         }|st        dd      |R|
j                  t              j                  t        j                  |k(        j	                         }|st        dd      i }|||d<   |||d<   |||d<   |||d<   |||d	<   |||d
<   |||d<   |rt        j                  j                  |j                        d   }t        j                          | }t        j                  j                  t        |      }t        |d      5 }|j!                  |j"                  j%                                d d d        ||d<   |j'                         D ]  \  }}t)        |||        |
j+                          |
j-                  |       |S # 1 sw Y   VxY w)Nr   Program not foundr   r   r   r   r   r   r   r   r   r"   r#   r   )r%   r   r&   r'   r(   r   r   r)   r*   r+   r,   r-   r.   r/   r   r0   r1   r2   r3   itemssetattrr5   r6   )rJ   r   r   r   r   r   r   r   r   r   r7   r   r=   r8   update_datar:   r,   r;   r<   fieldvalues                        r>   update_programrR   O   s    IB hhw&&wzzZ'?@FFHG4GHH 88H%,,X[[K-GHNNPC8LMM K"F"*J%0M" '4O$$G!(6$%%0M" ggu~~.q1jjl^C5)77<< 18<(D! 	'QGGEJJOO%&	''G $))+ 'u&' IIKJJwN	' 	's   *GGc                 8   |\  }}|j                  t        t              j                  t        j                  | k(              }|j                         }|st        dd      t        j                  |_	        |j                          |j                  |       ddiS )Nr   rL   messagezProgram deleted successfully)rA   r   r   rB   r'   scalar_one_or_noner   r   DELETEDrC   r5   r6   )rJ   r   r7   r   rG   r=   s         r>   delete_programrW      s~    IBZZw--gjjJ.FGHF'')GC!455 ((GMIIKJJw566rI   ))r)   fastapir   r   r   r   r   r   shutilr-   fastapi_pagination.utilsr	   app.utils.authentificationr
   sqlalchemy.futurer   app.models.programr   app.models.categoryr   app.schemasr   schemasapp.enums.general_stater   routergetenvr   makedirspoststrintfloattupler?   getrH   putrR   deleterW   r$   rI   r>   <module>rm      s3   	 M M  G : $ ' ( ( 0 
 " $BII17;   -[S	GDzd9 JCyT
!"56*
** * 	*
 * * * * * *Z K(/0C(D " " "
 $% T
JDzd: JDzT
!"5699
9 9 	9
 9 9 9 9 9 9 &9v '(:ABU:V 	7s 	7% 	7 )	7rI   