o
    h
                     @   s  U d dl Z d dlZd dlmZ d dlmZmZ e  e dZe dZ	e dZ
e ddZe d	dZe d
dZe dd Zejedd edZdaedB ed< daedB ed< defddZdefddZdee fddZdee fddZdedB fddZdS )    N)load_dotenv)create_clientClientSUPABASE_URLSUPABASE_KEYSUPABASE_SECRETSUPABASE_ADMIN_EMAILS 	LOG_UNITSAPP_LOG_PATH	LOG_LEVELINFOz[%(levelname)s] %(message)s)levelformatsupabase_service_client_admin_clientreturnc               
   C   sT   t d urt S tr
tstdzttta t W S  ty) }  ztd|   d } ~ ww )NuD   SUPABASE_URL 또는 SUPABASE_KEY 환경변수가 비어있습니다.u*   Supabase 클라이언트 생성 실패: %s)r   r   r   RuntimeErrorr   	Exceptionloggererror)e r   2/var/www/html/bot/app/services/supabase_service.py
get_client   s   
r   c               
   C   sd   t durt S tstdtpt} | stdztt| a t W S  ty1 } ztd|  d}~ww )uX   Service role key 기반 관리자 클라이언트. 비어있으면 기본 키로 폴백.Nu0   SUPABASE_URL 환경변수가 비어있습니다.uB   SUPABASE_SECRET 또는 SUPABASE_KEY 중 하나가 필요합니다.u4   Supabase 관리자 클라이언트 생성 실패: %s)	r   r   r   r   r   r   r   r   r   )keyr   r   r   r   get_admin_client$   s   
r   c                  C   :   dh} t pd }|s| S dd |dD }t|p| S )u   관리자 이메일 목록을 .env에서 읽어 소문자로 정규화해 반환.
    예) SUPABASE_ADMIN_EMAILS="admin@example.com, jhlee@kps.co.kr"
    기본값으로 jhlee@kps.co.kr 포함.
    zjhlee@kps.co.krr	   c                 S   s    g | ]}|  r|   qS r   )striplower.0pr   r   r   
<listcomp>?   s     z$get_admin_emails.<locals>.<listcomp>,)r   r   splitsetbaserawpartsr   r   r   get_admin_emails6   s   r,   c                  C   r   )Nzgovbot-web.servicer	   c                 S   s   g | ]
}|  r|  qS r   )r   r!   r   r   r   r$   H   s    z!get_log_units.<locals>.<listcomp>r%   )r
   r   r&   r'   r(   r   r   r   get_log_unitsC   s   r-   c                  C   s   t pd } | p	d S )Nr	   )r   r   )r#   r   r   r   get_app_log_pathL   s   r.   )osloggingdotenvr   supabaser   r   getenvr   r   r   r   r
   r   upperr   basicConfig	getLoggerr   r   __annotations__r   r   r   r'   strr,   r-   r.   r   r   r   r   <module>   s*   
 



	