
    i`                        d dl mZmZmZmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZmZ d dlmZ  e       Z G d de      Z ee	e
d	      Zej'                  d
 ee      g       e ed            fdefd       Zej+                  d
      d        Zej/                  d ee      g       e ed            fdedefd       Zej5                  d ee      g       e ed            fdedefd       Zy)    )	APIRouterHTTPExceptionDependsRequest)CategoryPayloadCategoryDatabaseModel)	MONGO_URIDB_NAME)requires_permissionassert_actor_match)verify_turnstilec                       e Zd ZU eed<   y)CategoryAdminPayloadactorIdN)__name__
__module____qualname__str__annotations__     E/var/www/pod-logistic/pod-api/controller/admin/category_controller.pyr   r   	   s    Lr   r   
categories)db_uridb_namecollection_namez/categories)dependenciesproduct_managementcategoryc                 `  K   	 |d   }|j                  dd      }t        || j                         | j                  dh      }t        j                  |      }ddd|i||dd	S # t        $ r}t        d
t        |            d }~wt        $ r}t        dt        |            d }~ww xY ww)Nidname r   excludesuccessu#   Đã thêm danh mục thành công!r!   r"   )statusmessagedataactedBy  status_codedetail  )
getr   r   
model_dumpdb_modelinsert_category
ValueErrorr   r   	Exception)r   current_useractor_id
actor_nameraw_datainserted_idvees           r   add_categoryr>      s     
<%!%%fb1
<)9)9:&&	{&;..x8  <;'"	
 	
  =CG<< <CF;;<s5   B.A A% $B.%	B+.BB+B&&B++B.c                     K   	 t         j                         } d| dS # t        $ r}t        dt	        |            d }~ww xY ww)Nr&   )r(   r*   r0   r-   )r3   get_all_categoriesr6   r   r   )r   r=   s     r   list_categoriesrA   2   sK     <002

 	
  <CF;;<s"   A A	A<AAz/categories/{category_id}category_idc                   K   	 |d   }|j                  dd      }t        ||j                         |j                  dh      }t        j                  | |      }|dk(  rt        dd	      d
d||ddS # t        $ r}t        dt        |      	      d }~wt        $ r}t        dt        |      	      d }~ww xY ww)Nr!   r"   r#   r   r$   r     u0   Không tìm thấy danh mục để cập nhậtr-   r&   u%   Cập nhật danh mục thành công!r'   r(   r)   r+   r,   r0   )
r1   r   r   r2   r3   update_categoryr   r5   r   r6   )	rB   r   r7   r8   r9   r:   updated_countr<   r=   s	            r   rF   rF   >   s     <%!%%fb1
<)9)9:&&	{&; 00hGAC8jkk  >"
 	
  =CG<< <CF;;<s5   B>A0A5 4B>5	B;>BB; B66B;;B>requestc                 2  K   	 |d   }|j                  dd      }t        ||j                  j                  d             t        j	                  |       }|dk(  rt        dd      d	d
||ddS # t        $ r}t        dt        |            d }~ww xY ww)Nr!   r"   r#   z
x-actor-idr   rD   u(   Không tìm thấy danh mục để xóar-   r&   u"   Đã xóa danh mục thành công!r'   rE   r0   )r1   r   headersr3   delete_categoryr   r6   r   )rB   rH   r7   r8   r9   deleted_countr=   s          r   rK   rK   ]   s     <%!%%fb1
<)<)<\)JK 00=AC8bcc  ;"
 	
  <CF;;<s)   BA+A0 /B0	B9BBBN)fastapir   r   r   r   model.categoryr   r   MongoDBConnectionr	   r
   utils.auth_helperr   r   utils.turnstile_helperr   routerr   r3   postr>   r1   rA   putr   rF   deleterK   r   r   r   <module>rV      s:   > > A 0 E 3	?  !  ]'2B*C)DE ,-ABC<"< F<: M< < 'w?O7P6QR ,-ABC<<"< S<< *'BR:S9TU ,-ABC<<< V<r   