
    iv                        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
 d dlmZmZ d dlmZ  e       Z G d de      Zej%                  d	ej&                   ee      g
       e ed            fdefd       Zej+                  d	 e ed            g      d        Z G d de      Zej%                  d ee      g      defd       Z G d de      Zej5                  d ee      g      defd       Z G d de      Z G d de      Zej5                  d ee      g       e ed            fdefd       Zej%                  d ee      g       e ed            fdefd        Zy!)"    )	APIRouterHTTPExceptionstatusDepends)	BaseModel)List)
StaffModel)requires_permissionassert_actor_match)verify_turnstilec                   @    e Zd ZU eed<   eed<   g Zee   ed<   eed<   y)AddStaffRequestnameemailpermissionsactorIdN)__name__
__module____qualname__str__annotations__r   r        </var/www/pod-logistic/pod-api/controller/staff_controller.pyr   r      s    
IJKcLr   r   z
/add-staff)status_codedependenciesadminreqc                   K   | j                   r| j                  st        dd      	 |d   }|j                  dd      }t	        || j
                         t        j                  | j                   j                         | j                  j                         | j                        }d|||d	d
S # t        $ r }t        d|        t        dd      d }~ww xY ww)Ni  u   Tên và Email là bắt buộc)r   detailidr    )r   r   r   Tr!   r   )successdataactedByu   Lỗi khi tạo staff: i  zInternal Server Error)r   r   r   getr   r   r	   create_staffstripr   	Exceptionprint)r   current_useractor_id
actor_namenew_staff_dataes         r   add_staff_controllerr1      s     
 883994UVVM%!%%fb1
<5#00!))//#
 ""
 	
  M's+,4KLLMs)   &CBB1 0C1	C:CCC)r   c                     K   	 ddl m}  t        | j                  ddi            }|D ]  }t	        |d         |d<    d|dS # t
        $ r}dt	        |      d	cY d }~S d }~ww xY ww)
Nr   
collectionrolestaff_idTr$   r%   Fr$   message)model.staff_modelr4   listfindr   r*   )r4   staffssr0   s       r   get_staff_listr@   3   sq     	50joovw&789 	%A1U8}AeH	%  00 5 SV445s4   A'>A A'	A$AA$A'A$$A'c                   "    e Zd ZU eed<   eed<   y)StaffLoginPayloadr   passwordNr   r   r   r   r   r   r   r   rB   rB   A   s    JMr   rB   z/auth/loginpayloadc           
      j  K   ddl m} |j                  | j                  dd      }|r|j	                  d      | j
                  k(  rg|j	                  d      dk(  rdd	d
S dt        |d         |d   |j	                  dd      |d   |j	                  dg       |j	                  dd      ddS ddd
S w)Nr   r3   r6   )r   r5   rC   r   inactiveFu)   Tài khoản của bạn đã bị khóa!r9   Tr7   r   r   r"   r5   r   active)r!   r   r   r5   r   r   r8   u3   Email hoặc mật khẩu Staff không chính xác!)r;   r4   find_oner   r'   rC   r   )rE   r4   users      r   staff_loginrK   F   s     ,HID$(8(8888H+$1\]] $u+&g,V#xxr:((8X6

 
	
 )^__s   B1B3c                   ,    e Zd ZU eed<   eed<   eed<   y)ChangePasswordPayloadstaffIdoldPasswordnewPasswordNrD   r   r   r   rM   rM   _   s    Lr   rM   z/change-passwordc                    K   t        j                  | j                  | j                  | j                        \  }}||dS w)N)staff_idold_passwordnew_passwordr9   )r	   change_passwordrN   rO   rP   )rE   r$   r:   s      r   change_staff_passwordrV   e   sA     !11((((GW 733s   ?Ac                   F    e Zd ZU eed<   eed<   eed<   ee   ed<   eed<   y)UpdateStaffPayloadrN   r   r   r   r   N)r   r   r   r   r   r   r   r   r   rX   rX   p   s     LJKcLr   rX   c                   "    e Zd ZU eed<   eed<   y)ResetPasswordPayloadrN   r   NrD   r   r   r   rZ   rZ   x   s    LLr   rZ   z/update-staffc                    K   |d   }|j                  dd      }t        || j                         t        j                  | j
                  | j                  | j                  | j                        \  }}||||ddS wNr!   r   r"   r#   )r$   r:   r&   )	r'   r   r   r	   update_staffrN   r   r   r   rE   r,   r-   r.   r$   msgs         r   update_staff_endpointr`   }   s     
 D!H!!&"-J|W__5**	LGS 
 s   A:A<z/reset-passwordc                    K   |d   }|j                  dd      }t        || j                         t        j                  | j
                        \  }}||||ddS wr\   )r'   r   r   r	   admin_reset_passwordrN   r^   s         r   reset_password_endpointrc      sg     
 D!H!!&"-J|W__5227??CLGS 
 s   AAN) fastapir   r   r   r   pydanticr   typingr   r;   r	   utils.auth_helperr
   r   utils.turnstile_helperr   routerr   postHTTP_201_CREATEDr1   r'   r@   rB   rK   rM   putrV   rX   rZ   r`   rc   r   r   r   <module>rm      s   = =   ( E 3	i  \v'>'>gVfNgMhi ,W56M	M jM@ L0CG0L(M'NO
5 P
5	 
 ]'2B*C)DE`0 ` F`0I  g6F.G-HI4)> 4 J4 9 
 O73C+D*EF ,W56 G2 g6F.G-HI ,W56! Jr   