
    jH	                     4   d dl m Z  d dlmZ d dlmZmZmZmZ  G d de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dS )    )datetime)Enum)	BaseModelEmailStrfield_serializerfield_validatorc                       e Zd ZdZdZdZdZdS )UserRoleplatform_adminplatform_usercustomer_admincustomer_userN)__name__
__module____qualname__PLATFORM_ADMINPLATFORM_USERCUSTOMER_ADMINCUSTOMER_USER     8/lsinfo/ai/hellotax_ai/base_platform/app/schemas/user.pyr
   r
      s"        %N#M%N#MMMr   r
   c                   p    e Zd ZU eed<   eed<   eed<    ed          ededefd                        ZdS )UserRegisteremailpasswordnamevreturnc                 P    ddl m}  ||          \  }}|st          |          |S Nr   )validate_password_strengthapp.core.securityr"   
ValueErrorclsr   r"   is_valid	error_msgs        r   validate_passwordzUserRegister.validate_password   G     	A@@@@@88;;) 	(Y'''r   N)	r   r   r   r   __annotations__strr   classmethodr*   r   r   r   r   r      sr         OOOMMM
III_Z  # #    [ !   r   r   c                   $    e Zd ZU eed<   eed<   dS )	UserLoginr   r   N)r   r   r   r   r,   r-   r   r   r   r0   r0      s"         OOOMMMMMr   r0   c                       e Zd ZU eed<   dS )EmailVerificationtokenN)r   r   r   r-   r,   r   r   r   r2   r2   #   s         JJJJJr   r2   c                       e Zd ZU eed<   dS )ResendVerificationr   N)r   r   r   r   r,   r   r   r   r5   r5   '   s         OOOOOr   r5   c                       e Zd ZU eed<   eed<   eed<   dZeed<   dZedz  ed<    e	d          e
ded	efd
                        ZdS )
UserCreater   r   r   r   roleN	tenant_idr   r   c                 P    ddl m}  ||          \  }}|st          |          |S r!   r#   r&   s        r   r*   zUserCreate.validate_password2   r+   r   )r   r   r   r   r,   r-   r8   r9   intr   r.   r*   r   r   r   r7   r7   +   s         OOOMMM
IIID# IsTz   _Z  # #    [ !   r   r7   c                       e Zd ZU dZedz  ed<   dZedz  ed<   dZedz  ed<   dZ	e
dz  ed<   dZedz  ed<   dZee
         dz  ed<   dZee
         dz  ed<   dS )
UserUpdateNr   r   r8   r9   is_verifiedrole_ids)r   r   r   r   r-   r,   r   r   r8   r9   r;   r>   boolr?   listr   r   r   r=   r=   =   s         D#*!E8d?!!!D#* IsTz   #K###!%Hd3i$%%%!%Hd3i$%%%%%r   r=   c                      e Zd ZU eed<   eed<   eed<   eed<   g Zee         ed<   dZedz  ed<   dZ	edz  ed<   dZ
edz  ed	<   eed
<   dZedz  ed<   eed<    edd          dedz  fd            Z G d d          ZdS )UserResponseidr   r   r8   rolesNr9   company_namerole_displayr>   
last_login
created_atdtc                 2    |d S |                                 S )N)	isoformat)selfrJ   _infos      r   serialize_datetimezUserResponse.serialize_datetimeT   s    :4||~~r   c                       e Zd ZdZdS )UserResponse.ConfigTN)r   r   r   from_attributesr   r   r   ConfigrQ   Z   s        r   rS   )r   r   r   r;   r,   r-   rE   rA   r9   rF   rG   r@   rH   r   r   rO   rS   r   r   r   rC   rC   G   s        GGGJJJ
III
IIIE49 IsTz   #L#*####L#*###"&J4&&&lL11X_    21
         r   rC   c                       e Zd ZU eed<   eed<   eed<   eed<   g Zee         ed<   g Zee         ed<   g Z	ee         ed<   dS )	DashboardStatstotal_usersonline_usersverified_usersadmin_userspopular_modelspopular_agentsrecent_activitiesN)
r   r   r   r;   r,   rZ   rA   dictr[   r\   r   r   r   rU   rU   ^   s         !#NDJ###!#NDJ###$&tDz&&&&&r   rU   N)r   enumr   pydanticr   r   r   r   r-   r
   r   r0   r2   r5   r7   r=   rC   rU   r   r   r   <module>r`      s               K K K K K K K K K K K K$ $ $ $ $sD $ $ $    9        	   
    	                 $& & & & & & & &    9   .' ' ' ' 'Y ' ' ' ' 'r   