
    i              	          d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZmZ  e            Z G d de          Z G d de          Ze                    d	          d
edefd            Ze                    d           edd           ed          fdee         dee         fd            Ze                    d           edd           ed          fdee         dee         fd            Ze                    d           edd           ed          fdedee         dee         fd            Ze                    d           edd           ed          fdedee         dee         fd            ZdS )    )	APIRouterCookieResponseHeader)	BaseModel)Optional)authenticate_supervisorget_supervisor_by_sessionget_mapped_learnersget_learner_daily_notesupdate_boss_comment_for_learnerc                   $    e Zd ZU eed<   eed<   dS )SupervisorLoginRequestsupervisor_idpasswordN__name__
__module____qualname__str__annotations__     %/app/app/routers/supervisor_router.pyr   r      s%         MMMMMr   r   c                   .    e Zd ZU eed<   eed<   eed<   dS )BossCommentRequestlearner_session_iddatecommentNr   r   r   r   r   r      s.         
IIILLLLLr   r   z/supervisor/loginrequestresponsec                    K   t          | j        | j                  }|d         r|                    d|d         d           |S )u   상사 인증successsup_session
session_idT)keyvaluehttponly)r	   r   r   
set_cookie)r    r!   results      r   supervisor_loginr+      sQ       %W%:G<LMMFi ZVL5ITXYYYMr   z/supervisor/auth/checkNAuthorization)alias
auth_tokenr$   c                    K   |}| r0|                      d          r|                     d          d         }|sddiS t          |          }|rd|d         dS ddiS )u(   현재 로그인된 상사 토큰 검증Bearer    	logged_inFTr   )r2   r   )
startswithsplitr
   )r.   r$   tokenusers       r   check_supervisor_authr7   !   s       E /j++I66 /  ++A. $U##$U++D K!D4IJJJr   z/supervisor/learnersc                    K   |}| r0|                      d          r|                     d          d         }t          |          }|sdddS t          |d                   }d|dS )	u1   상사에게 매핑된 학습자 리스트 반환r0   r1   errorUnauthorizedstatusmessager   r#   r<   data)r3   r4   r
   r   )r.   r$   r5   r6   learnerss        r   get_learnersrA   0   s       E /j++I66 /  ++A.$U++D >!n==="4#899H222r   z(/supervisor/reports/{learner_session_id}r   c                    K   |}|r0|                     d          r|                    d          d         }t          |          }|sdddS t          |d         |           }|dddS d	|d
S )u-   특정 학습자의 일지(daily_note) 조회r0   r1   r9   r:   r;   r   Nz+You don't have permission for this learner.r#   r>   )r3   r4   r
   r   )r   r.   r$   r5   r6   notess         r   get_learner_reportsrD   >   s       E /j++I66 /  ++A.$U++D >!n===#D$9;MNNE}!.[\\\///r   z/supervisor/boss-commentreqc                    K   |}|r0|                     d          r|                    d          d         }t          |          }|sdddS t          |d         | j        | j        | j                  }|S )u   상사 코멘트 저장r0   r1   r9   r:   r;   r   )r3   r4   r
   r   r   r   r   )rE   r.   r$   r5   r6   ress         r   submit_boss_commentrH   O   s       E /j++I66 /  ++A.$U++D >!n===
)$*?AWY\Yacfcn
o
oCJr   )fastapir   r   r   r   pydanticr   typingr   app.models.supervisor_db_moduler	   r
   r   r   r   routerr   r   postr+   getr   r7   rA   rD   rH   r   r   r   <module>rP      sd   7 7 7 7 7 7 7 7 7 7 7 7                          
    Y          
  !!$: h    "! $%%<BF4<_<_<_  E  E  FJ  K  K    HSM  nvwzn{       &%  "##396$o3V3V3Vu{u{  }A  vB  vB 3 38C= 3emnqer 3 3 3 $#3 677SYSYZ^fuSvSvSv  V\  V\  ]a  Vb  Vb 0 0# 08C= 0  FN  OR  FS 0 0 0 870  '((SYSYZ^fuSvSvSv  V\  V\  ]a  Vb  Vb  #5 8C=   FN  OR  FS    )(  r   