
    {iH                     2   d Z ddlmZ ddlmZ ddlmZmZmZ ddlm	Z	  G d de	      Z
 G d d	e
      Z G d
 de	      Z G d de	      Z G d de	      Z G d de	      Z G d de	      Z G d de	      Z G d de	      Z G d de	      Z G d de	      Zy)z:
Authentication schema definitions for common operations.
    )datetime)Optional)EmailStrField
ConfigDict)
BaseSchemac                   P    e Zd ZU dZ edd      Zeed<    eddd      Ze	ed	<   y
)AuthBasezBase authentication schema..User's email addressdescriptionemail   User's password
min_lengthr   passwordN)
__name__
__module____qualname____doc__r   r   r   __annotations__r   str     _/var/www/html/hwPaymentPortal-be-dev/hw-payment-portal-api/src/apps/auth/schemas/auth_common.pyr
   r
      s+    %C-CDE8D#!9JKHcKr   r
   c                       e Zd ZdZy)LoginRequestSchemazSchema for login request.N)r   r   r   r   r   r   r   r   r      s    #r   r   c                   2   e Zd ZU dZ ed      Z edd      Zee	d<    edd      Z
ee	d	<    edd
      Zee	d<    edd      Zee	d<    edd      Zee	d<    edd      Zee	d<    edd      Zee	d<    edd      Zee	d<    edd      Zee	d<   y)LoginResponseSchemazSchema for login response.Tfrom_attributes.zAuthentication result messager   messageUser's unique identifieruser_idr   r   Whether the user is active	is_activeWhether the user is verifiedis_verifiedJWT access tokenaccess_tokenJWT refresh tokenrefresh_tokenbearer
Token typedefaultr   
token_typez'Access token expiration time in seconds
expires_inN)r   r   r   r   r   model_configr   r#   r   r   r%   intr   r   r'   boolr)   r+   r-   r2   r3   r   r   r   r    r       s    $d3L*IJGSJ*DEGSEC-CDE8DC-IJItJc/MNKNc/ABL#Bs0CDM3DH,GJGC-VWJWr   r    c                       e Zd ZU dZ edd      Zeed<    eddd      Ze	ed	<    ed
dd      Z
ee	   ed<    ed
dd      Zee	   ed<    ed
dd      Zee	   ed<    ed
dd      Zee	   ed<   y
)RegisterRequestSchemazSchema for user registration..r   r   r   r   r   r   r   Nd   User's first name)
max_lengthr   
first_nameUser's middle namemiddle_nameUser's last name	last_name   User's phone numberphone)r   r   r   r   r   r   r   r   r   r   r<   r   r>   r@   rC   r   r   r   r8   r8   '   s    'C-CDE8D#!9JKHcK %dsH[ \J\!&tI]!^K#^$TcGYZIx}Z "BWXE8C=Xr   r8   c                       e Zd ZU dZ ed      Z edd      Zee	d<    edd      Z
ee	d	<    edd
      Zee	d<    edd      Zee	d<    edd      Zee	d<   y)RegisterResponseSchemaz!Schema for registration response.Tr!   .zRegistration result messager   r#   r$   r%   r   r   r&   r'   r(   r)   N)r   r   r   r   r   r4   r   r#   r   r   r%   r5   r   r   r'   r6   r)   r   r   r   rE   rE   2   si    +d3L*GHGSH*DEGSEC-CDE8DC-IJItJc/MNKNr   rE   c                       e Zd ZU dZ edd      Zeed<    edd      Zeed<    edd	
      Z	eed<    edd      Z
eed<   y)AuthTokenSchemaz Schema for authentication token..r*   r   r+   r,   r-   r.   r/   r0   r2   z Token expiration time in secondsr3   N)r   r   r   r   r   r+   r   r   r-   r2   r3   r5   r   r   r   rG   rG   >   sL    *c/ABL#Bs0CDM3DH,GJGC-OPJPr   rG   c                   0    e Zd ZU dZ edd      Zeed<   y)RefreshTokenRequestSchemaz!Schema for token refresh request..r,   r   r-   N)r   r   r   r   r   r-   r   r   r   r   r   rI   rI   G   s    +s0CDM3Dr   rI   c                   N    e Zd ZU dZ edd      Zeed<    edd      Ze	ed<   y)	LogoutResponseSchemazSchema for logout response..zLogout result messager   r#   zNumber of sessions logged outlogged_out_sessionsN)
r   r   r   r   r   r#   r   r   rL   r5   r   r   r   rK   rK   M   s*    %*ABGSB$S6UVVr   rK   c                      e Zd ZU dZ ed      Z edd      Zee	d<    edd	      Z
ee   e	d
<    edd      Zee	d<    edd      Zee   e	d<    edd      Zee   e	d<    edd      Zee   e	d<    edd      Zee   e	d<    edd      Zee   e	d<    edd      Zee	d<    edd      Zee	d<    edd      Zee	d<    edd      Zee	d<    edd      Zee   e	d <    edd!      Zee   e	d"<   ed#efd$       Zy)%UserProfileSchemaz4Schema for user profile information in /me endpoint.Tr!   .r$   r   idNzUser's external identifierr%   r   r   zUser's usernameusernamer:   r<   r=   r>   r?   r@   rB   rC   r&   r'   r(   r)   zWhether the user is a superuseris_superuserzWhen the user was created
created_atzWhen the user was last updated
updated_atzUser's last login time
last_loginreturnc                     | j                   | j                  | j                  fD cg c]  }|s|	 }}|rdj                  |      S dS c c}w )zGet user's full name.  )r<   r>   r@   join)selfnamenamess      r   	full_namezUserProfileSchema.full_nameh   sJ     $(??D4D4Ddnn"U^$Y]^^"'sxx/R/ _s
   A	A	)r   r   r   r   r   r4   r   rO   r5   r   r%   r   r   r   r   rP   r<   r>   r@   rC   r'   r6   r)   rQ   rR   r   rS   rT   propertyr]   r   r   r   rN   rN   T   sF   >d3LC%?@B@"45QRGXc]RC-CDE8D#D6GHHhsmH %d8K LJL!&t9M!NK#N$T7IJIx}J 3HIE8C=IC-IJItJc/MNKNs0QRL$R 2MNJN%*4=]%^J"^%*4=U%VJ"V03 0 0r   rN   c                   0    e Zd ZU dZ edd      Zeed<   y)PasswordResetRequestSchemaz"Schema for password reset request..r   r   r   N)r   r   r   r   r   r   r   r   r   r   r   r`   r`   o   s    ,C-CDE8Dr   r`   c                   p    e Zd ZU dZ edd      Zeed<    eddd      Zeed	<    eddd
      Z	eed<   y)PasswordResetSchemazSchema for password reset..zPassword reset tokenr   tokenr   zNew passwordr   new_passwordzConfirm new passwordconfirm_passwordN)
r   r   r   r   r   rc   r   r   rd   re   r   r   r   rb   rb   u   s?    $s(>?E3?ca^LL#L!#!AWXcXr   rb   N)r   r   typingr   pydanticr   r   r   src.apps.base.schemas.commonr   r
   r   r    r8   rE   rG   rI   rK   rN   r`   rb   r   r   r   <module>ri      s      0 0 3Lz L	 	
X* X YJ Y	OZ 	OQj QE
 EW: W0
 06E EY* Yr   