
    i
                         d dl mZmZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl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y)    )OptionalList)datetime)	BaseModelEmailStrfield_validator)RoleOut)field_serializer)UniversityOutc                   "    e Zd ZU eed<   eed<   y)LoginRequestemailpasswordN)__name__
__module____qualname__r   __annotations__str     9/var/www/html/syllabuild_admin/backend/db/schemas/user.pyr   r      s    OMr   r   c                   "    e Zd ZU eed<   eed<   y)Tokenaccess_token
token_typeN)r   r   r   r   r   r   r   r   r   r      s    Or   r   c                      e Zd ZU eed<   eed<   eed<   dZee   ed<   dZ	ee   ed<   dZ
eed<   d	Zeed
<   d	Zeed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<    eddddd      d        Zy)
UserCreatenamer   r   Nrole_iduniversity_idT	is_activeFis_email_verifiedis_phone_verifiedphone_numberprofile_pictureactivation_dateeducational_degree
departmentsubscription_packagesubscription_start_datesubscription_end_datesubscription_statussubscription_renewal_date
created_at
updated_atbefore)modec                     |dv ry |S )N) Nr   )clsvs     r   empty_string_to_nonezUserCreate.empty_string_to_none)   s     
?r   )r   r   r   r   r   r   r   r   intr    r!   boolr"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r   r6   r   r   r   r   r      s'   
IOM!GXc]! $M(3-$It#t##t#"&L(3-&%)OXc])*.OXh'.(,, $J$*.(3-.26Xh/6048H-4)-#-48x18%)J")%)J")!#r   r   c                      e Zd ZU eed<   eed<   eed<   eed<   eed<   dZ	e
e   ed<   edz  ed<   edz  ed	<   d
Zeed<   d
Zeed<   dZe
e   ed<   dZe
e   ed<   e
e   ed<   e
e   ed<   dZe
e   ed<   dZe
e   ed<   dZe
e   ed<   dZe
e   ed<   dZe
e   ed<   dZe
e   ed<   dZe
e   ed<   eed<   eed<    G d d      Zy)UserResponseidr   r   r!   roleN
universityr&   
last_loginFr"   r#   r$   r%   r   r    r'   r(   r)   r*   r+   r,   r-   r.   r/   c            
       P    e Zd ZdZed iZdZ eddddddd	d
      defd       Z	y)UserResponse.ConfigTc                 F    t        | t              r| j                         S | S N)
isinstancer   	isoformat)r5   s    r   <lambda>zUserResponse.Config.<lambda>Q   s    Jq(,C1;;=  r   r&   r>   r*   r+   r-   r.   r/   json)	when_usedvaluec                 <    |rt        |j                               S d S rB   )r7   	timestamp)r4   rH   s     r   serialize_datetimez&UserResponse.Config.serialize_datetimeU   s    -23u()<<r   N)
r   r   r   from_attributesr7   json_encodersstr_strip_whitespacer
   r   rK   r   r   r   Configr@   N   sc    J
  $	+\;TVm  pK  MY  [g  sy  
z	=8 	= 
z	=r   rO   )r   r   r   r7   r   r   r   r8   r	   r=   r   r   r   r"   r#   r$   r%   r'   r(   r)   r*   r+   r,   r-   rO   r   r   r   r:   r:   4   s   G
IOO
M*.J'._$4#t##t#"&L(3-&%)OXc])c]3-(,, $J$*.(3-.26Xh/6048H-4)-#-48x18	= 	=r   r:   N)typingr   r   r   pydanticr   r   r   db.schemas.roler	   r
   db.schemas.universityr   r   r   r   r:   r   r   r   <module>rT      sK       9 9 # % /9 I    B#=9 #=r   