
    mh	                     H   d dl Z d dlmZ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  e       Z e         e j*                  d	d
      Zej/                  dej0                         ee
      fdej2                  defd       Zej9                  deej0                            ee
      fdefd       Zej?                  dej0                         ee
      fde dejB                  defd       Z"ejG                  d       ee
      fde defd       Z$y)    N)	APIRouterDependsHTTPExceptionFile
UploadFile)"disable_installed_extensions_check)check_user_is_admin)select)GeneralState)Category)adminFILE_STORAGE_PATHfilesz/categories)response_modelpayloaddependenciesc                     |\  }}t        di | j                         dt        j                  i}|j	                  |       |j                          |j                  |       |S )Nstate )r   
model_dumpr   ACTIVEaddcommitrefresh)r   r   dbr   categorys        d/Users/theessential/Documents/Github/KofAcademy/kof-academy-backend/app/routers/admins/categories.pycreate_categoryr      sR    IBJ',,.Jl6I6IJHFF8IIKJJxO    c                     | \  }}|j                  t        t              j                  t        j                  t
        j                  k(              }|j                         j                         S )N)	executer
   r   wherer   r   r   scalarsall)r   r   r   results       r   list_categoriesr&   #   sS    IBZZxx~~1D1DDEF >>!!r   z/categories/{category_id}category_idc                 t   |\  }}|j                  t        t              j                  t        j                  | k(              }|j                         }|st        dd      |j                  d      j                         D ]  \  }}t        |||        |j                          |j                  |       |S )N  Category not foundT)exclude_unset)r!   r
   r   r"   idscalar_one_or_noner   r   itemssetattrr   r   )	r'   r   r   r   r   r%   r   fieldvalues	            r   update_categoryr2   ,   s    IBZZx(..x{{k/IJKF((*HC!566***>DDF (u%'(IIKJJxOr   c                    |\  }}|j                  t        t              j                  t        j                  | k(              }|j                         }|st        dd      |j                  dk(  rt        dd      d|_        |j                          |j                  |       d|j                  |j                  ddS )	Nr)   r*   DELETEDi  zCategory already deletedzCategory deleted successfully)r,   r   )messager   )
r!   r
   r   r"   r,   r-   r   r   r   r   )r'   r   r   r   r%   r   s         r   delete_categoryr6   :   s    IBZZx(..x{{k/IJKF((*HC!566~~"C!;<<HNIIKJJx 3#;;@ r   )%osfastapir   r   r   r   r   fastapi_pagination.utilsr   app.utils.authentificationr	   sqlalchemy.futurer
   app.enums.general_stater   app.models.categoryr   app.schemasr   schemasroutergetenvr   postCategoryResponseCategoryCreatetupler   getlistr&   putintCategoryUpdater2   deleter6   r   r   r   <module>rL      sJ   	 G G G : $ 0 ) ( 
 " $BII17;  ]7+C+CDKRSfKg W33 5  E M$w/G/G*HI*12E*F "% " J" '8P8PQ]dex]y 
 
w/E/E 
UZ 
 R
 *+<CDW<X  E  ,r   