
    %~i                       U d dl mZ 	 d dlmZ d dlmZmZmZ ddlm	Z	  eddg      Z
d	ad
ed<   d*dZe
j                  d       ed	       ed	       eddd       ed d       f	 	 	 	 	 	 	 	 	 d+d       Ze
j!                  dd      d,d       Ze
j                  d      d-d       Ze
j'                  d      d.d       Ze
j+                  dd      d/d       Ze
j!                  d      d-d       Ze
j!                  d      d-d       Ze
j                  d        ed!d"       ed#dd$      f	 	 	 	 	 d0d%       Ze
j                  d&      d1d'       Ze
j!                  d(      d2d)       Zy	)3    )annotations)Any)	APIRouterHTTPExceptionQuery   )	WikiStorez	/api/wikiwiki)prefixtagsNzWikiStore | None_storec                 .    t         
t               a t         S )N)r   r	        Y/home/jay/projects/insuwiki/.worktrees/task-2064-dev6/scripts/kakao_knowledge/wiki_api.py	get_storer      s    ~Mr   z/entries)default2     )r   gele)r   r   c                <    t               j                  | |||      S )u   위키 항목 목록 조회.categorystatuslimitoffset)r   list_entriesr   s       r   r   r   &   s*     ;##	 $  r      )status_codec                    t               j                  |       }t               j                  |      }|t        dd      |S )u   새 위키 항목 생성.r   u   항목 생성 후 조회 실패r    detail)r   insert_entry	get_entryr   )bodyentry_identrys      r   create_entryr)   6   s@     {''-HK!!(+E}4UVVLr   z/entries/{entry_id}c                \    t               j                  |       }|t        dd|        |S )u   단건 위키 항목 조회.  #   항목을 찾을 수 없습니다: r"   )r   r%   r   )r'   r(   s     r   r%   r%   @   s<     K!!(+E}&I($T
 	
 Lr   c                    t               j                  | |      }|st        dd|        t               j                  |       }|t        dd|        |S )u"   위키 항목 부분 업데이트.r+   r,   r"   )r   update_entryr   r%   )r'   r&   updatedr(   s       r   r.   r.   K   so     k&&x6G&I($T
 	
 K!!(+E}&I($T
 	
 Lr      c                Z    t               j                  |       }|st        dd|        y)u   위키 항목 삭제.r+   r,   r"   N)r   delete_entryr   )r'   deleteds     r   r2   r2   [   s8     k&&x0G&I($T
 	
 r   z/entries/{entry_id}/approvec                    t               j                  |       }|st        dd|        t               j                  |       }|t        dd|        |S )u+   위키 항목 승인 (status → approved).r+   r,   r"   )r   approve_entryr   r%   r'   okr(   s      r   r5   r5   e   sm     
	"	"8	,B&I($T
 	
 K!!(+E}&I($T
 	
 Lr   z/entries/{entry_id}/rejectc                    t               j                  |       }|st        dd|        t               j                  |       }|t        dd|        |S )u+   위키 항목 반려 (status → rejected).r+   r,   r"   )r   reject_entryr   r%   r6   s      r   r9   r9   u   sm     
	!	!(	+B&I($T
 	
 K!!(+E}&I($T
 	
 Lr   z/search.)
min_length      c                8    t               j                  | |      S )u   FTS5 전문 검색.)queryr   )r   search_entries)qr   s     r   r?   r?      s     ;%%AU%;;r   z/statsc                 2    t               j                         S )u#   카테고리별 / 상태별 통계.)r   	get_statsr   r   r   rB   rB      s     ;  ""r   z/importc                P    t               j                  |       }|t        |       dS )u   위키 항목 일괄 import.)importedtotal)r   bulk_importlen)r&   counts     r   rF   rF      s%     K##D)ED	22r   )returnr	   )
r   
str | Noner   rJ   r   intr   rK   rI   list[dict[str, Any]])r&   dict[str, Any]rI   rM   )r'   strrI   rM   )r'   rN   r&   rM   rI   rM   )r'   rN   rI   None)r@   rN   r   rK   rI   rL   )rI   rM   )r&   rL   rI   rM   )
__future__r   typingr   fastapir   r   r   
wiki_storer	   routerr   __annotations__r   getr   postr)   r%   putr.   deleter2   r5   r9   r?   rB   rF   r   r   r   <module>rZ      s   "  3 3 !	+VH	5    J .t,raC0a(	  	
   ZS) * !" # !" # $#6
 7
 *+ , )* + I31%raC0<
<< < < H# #
 Y3 3r   