
    _i                        d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	m
Z
mZmZmZ d dlmZ  eddg      Zej#                  d	 ee      g
      de	fd       Zej#                  d ee      g
      de
fd       Zej#                  d ee      g
      defd       Zej+                  d      defd       Zej+                  d       edd       edd       eddd       edd       edd       edd !       ed"d#!      fd$ed%ed&ed'ee   d(ee   d)ed*efd+       Zej5                  d, ee      g
      defd-       Zy).    )Optional)	APIRouterDependsQuery)JSONResponse)UserGoogleLoginPayloadUserLoginPayloadUserForgotPasswordPayloadUserUpdatePasswordPayload	UserModel)verify_turnstilez/userzUser API)prefixtagsz/auth/google)dependenciespayloadc                   K   	 t        j                  |       }dt        |j                  d            |j                  d      |j                  dd      |j                  dd      |j                  dd      |j                  dd	      |j                  d
d      t	        |j                  d            dddS # t
        $ r}dt        |      dcY d }~S d }~ww xY ww)NT_idemail	firstName lastName	avatarUrlbalancer   roleuserpasswordidr   r   r   r   r   r   hasPasswordu!   Đăng nhập Google thành công)successdatamessageFr    r"   )r   handle_google_loginstrgetbool	Exception)r   r   es      ;/var/www/pod-logistic/pod-api/controller/user_controller.pyuser_google_loginr+      s     5,,W5 $((5/*'*!XXk26 HHZ4!XXk2688Iq10#DHHZ$89	 ;
 	
  5 SV445s5   CB2B7 6C7	C CCCCCz/auth/loginc           
      &  K   t        j                  | j                  | j                        }|r]dt	        |d         |d   |j                  dd      |j                  dd      |j                  dd      |j                  dd	      d
dddS dddS w)NTr   r   r   r   r   r   r   r   r   r   r    r!   Fu-   Email hoặc mật khẩu không chính xác!r#   )r   verify_loginr   r   r%   r&   )r   r   s     r*   
user_loginr/   (   s     !!'--1A1ABD$u+&g!XXk26 HHZ4!XXk2688Iq1#	
 	
 )XYYs   BBz/forgot-passwordc                 X   K   t        j                  | j                        \  }}||dS w)Nr#   )r   reset_passwordr   )r   r    r"   s      r*   forgot_passwordr2   =   s*      //>GW733s   (*z/mer   c                    t        j                  |       }|st        dddd      S dt        |j	                  d            |j	                  d      |j	                  d	d
      |j	                  dd
      |j	                  dd
      |j	                  dd
      |j	                  d      |j	                  dd      d|j	                  dd      d
dS )Ni  Fu   Không tìm thấy Userr#   )status_codecontentTr   r   r   r   r   phoneaddressr   r   r   r   	createdAtz2026-01-15T08:00:00.000Z)
r   r   r   r   r6   r7   r   r   r   r8   r-   )r   get_user_by_emailr   r%   r&   )r   r   s     r*   get_user_mer:   C   s    &&u-D %2KL
 	
 dhhuo&XXg&+r2R0XXgr*xx	2.+.xx	1-+/IJ
     z/searchr   u   Từ khóa tìm kiếm user)description   )ge
   d   )r>   leNz
YYYY-MM-DDr   z^(balance|spent)$)patterndescz^(asc|desc)$keywordpagepageSizedateFromdateTosortBy	sortOrderc           	      j    t        j                  | ||||||      }d|d   |d   |d   |d   |d   dS )	N)rD   rE   	page_size	date_fromdate_tosort_by
sort_orderTitemstotalrE   rF   
totalPages)r    r!   rR   rE   rF   rS   )r   search_users)rD   rE   rF   rG   rH   rI   rJ   results           r*   rT   rT   ]   s]     ##F wv:&\* r;   z/update-passwordc                 v   K   t        j                  | j                  | j                        }|rdddS dddS w)NTu   Cập nhật thành côngr#   Fu   Không tìm thấy user)r   update_passwordr   newPassword)r   r    s     r*   rW   rW   {   s=     ''w7J7JKG,GHH)BCCs   79)typingr   fastapir   r   r   fastapi.responsesr   model.user_modelr   r	   r
   r   r   utils.turnstile_helperr   routerpostr+   r/   r2   r&   r%   r:   intrT   putrW    r;   r*   <module>rc      s    - - *  4	'	5 ^73C+D*EF5%; 5 G5, ]'2B*C)DEZ. Z FZ( w7G/H.IJ4#< 4 K4
 Es  2 I)FGaA"s+#DlC!$LA	+>?6>:
  sm	
 SM   : g6F.G-HID#< D JDr;   