o
    լi                     @   s   d dl mZmZ d dlmZmZmZmZ d dlm	Z	m
Z
mZmZmZ d dlmZ eddgdZejded	d
efddZejded	d
efddZeddefddZeddefddZedd
efddZdS )    )	APIRouterHTTPException)RegisterRequestLoginRequestAuthResponseProgressUpdateRequest)create_userauthenticate_userget_user_by_sessionget_study_progressupdate_study_progress)loggerz/goal-skill-t/api/authAuthentication)prefixtagsz	/register)response_modelrequestc                    sl   | j r| jstdddt| jdk rtdddt| j | j}t|d |d |d r/| j nd|d	 d
S )uh   
    새 유저를 등록합니다.
    - user_id: 로그인 아이디
    - password: 비밀번호
      0   아이디와 비밀번호를 입력해주세요.status_codedetail   u2   비밀번호는 4자리 이상이어야 합니다.success
session_idNmessager   r   user_idr   )r   passwordr   lenr   r   r   result r"   5/home/air/goalskill_t/back/app/routers/auth_router.pyapi_register   s   r$   z/loginc                    sR   | j r| jstdddt| j | j}t|d |d |d r"| j nd|d dS )	un   
    유저 로그인을 수행합니다.
    - user_id: 로그인 아이디
    - password: 비밀번호
    r   r   r   r   r   Nr   r   )r   r   r   r	   r   r    r"   r"   r#   	api_login7   s   r%   z/me/{session_id}r   c                    s.   t | }|stdddd|d |d dS )u4   
    세션 ID가 유효한지 검증합니다.
      $   유효하지 않은 세션입니다.r   Tr   r   )validr   r   )r
   r   )r   userr"   r"   r#   api_check_sessionM   s   r*   z/progress/{session_id}c                    s2   t | }|stdddt| }| |d |dS )u.   유저의 학습 진행도를 조회합니다.r&   r'   r   r   )r   r   progress)r
   r   r   )r   r)   r+   r"   r"   r#   api_get_progress`   s   r,   z	/progressc                    sZ   g d}| j |vrtdd| dt| j| j| j | jd}|d s+td|d d|S )	u*   학습 진행도를 업데이트합니다.)NOT_STARTEDIN_PROGRESS	COMPLETEDr   u-   유효하지 않은 상태입니다. 가능: r   )r   item_idstatusscorer   i  r   )r1   r   r   r   r0   r2   )r   valid_statusesr!   r"   r"   r#   api_update_progresso   s    
r4   N)fastapir   r   app.schemas.auth_schemar   r   r   r   app.models.auth_moduler   r	   r
   r   r   app.core.configr   routerpostr$   r%   getstrr*   r,   putr4   r"   r"   r"   r#   <module>   s$   	