
    HCi                     j    d dl mZmZ d dlmZ d dlmZ d dlmZ  G d dee      Z	 G d ded	
      Z
y)    )SQLModelField)datetime)Enum)field_validatorc                       e Zd ZdZdZdZy)Role
SUPERADMINADMINUSERSN)__name__
__module____qualname__r
   r   r        A/var/www/html/story-book/Story-Book-python-api/app/models/user.pyr	   r	      s    JEEr   r	   c                      e Zd ZU  edd      Zedz  ed<    edd      Zedz  ed<    edd      Z	edz  ed<    eddd	
      Z
eed<    ed	      Zeed<   dZedz  ed<    eej                        Zeed<    ed	      Zeed<   dZedz  ed<    eej(                        Zeed<    eej(                  dej(                  i      Zeed<    edd      ededefd              Z edd      ededz  dedz  fd              Z edd      ededz  dedz  fd              Z edd      ededz  dedz  fd               Zy)!UserNT)defaultprimary_keyidd   )r   
max_length
first_name	last_nameF)uniqueindexnullableemail)r   hashed_passwordphone)r   role
is_deletedprofile_image)default_factory
created_atonupdate)r%   sa_column_kwargs
updated_atbefore)modevaluereturnc                 F    ||S |j                         j                         S N)striplower)clsr,   s     r   normalize_emailzUser.normalize_email   s#     =L{{}""$$r   vc                 F    |s|S |j                         j                         S r/   r0   
capitalizer2   r4   s     r   normalize_first_namezUser.normalize_first_name!   s!     Hwwy##%%r   c                 F    |s|S |j                         j                         S r/   r6   r8   s     r   normalize_last_namezUser.normalize_last_name*   s!     Hwwy##%%r   c                 h    |s|S dj                  t        t        j                  |            }|r|S d S )N )joinfilterstrisdigit)r2   r4   digitss      r   normalize_phonezUser.normalize_phone2   s2     HQ/0v)T)r   )r   r   r   r   r   int__annotations__r   r@   r   r   r    r!   r	   r   r"   r#   boolr$   r   utcnowr&   r)   r   classmethodr3   r9   r;   rC   r   r   r   r   r      s   4T:Bd
:"4C@Jd
@!$3?IsTz?d$?E3? %0OS0E3:tzz*D$*U+J+ $M3:$ AJA T^`h`o`oSpqJq W8,%C %C %  -% \1&S4Z &C$J &  2& [x0&C$J &3: &  1& W8,*d
 *sTz *  -*r   r   T)tableN)sqlmodelr   r   r   enumr   pydanticr   r@   r	   r   r   r   r   <module>rM      s-    $   $3 
.*84 .*r   