o
    fsiB                     @   s\   d dl mZ d dlmZ d dlmZ G dd deZG dd dejZG dd	 d	ejZ	d
S )    )serializers)User)TokenObtainPairSerializerc                       s,   e Zd Ze fddZ fddZ  ZS )CustomTokenObtainPairSerializerc                    sX   t  |}|j|d< |j|d< |j|d< |j|d< |j d|j  p'|j|d< |S )Nusernameemailis_staffis_superuser 	full_name)	super	get_tokenr   r   r   r	   
first_name	last_namestrip)clsusertoken	__class__ @/var/www/html/smartRegister/backend/apps/accounts/serializers.pyr      s   



 z)CustomTokenObtainPairSerializer.get_tokenc                    sX   t  |}| jj| jj| jj| jj d| jj  p| jj| jj	| jj
d|d< |S )Nr
   )idr   r   r   r   r	   r   )r   validater   r   r   r   r   r   r   r   r	   )selfattrsdatar   r   r   r      s    
z(CustomTokenObtainPairSerializer.validate)__name__
__module____qualname__classmethodr   r   __classcell__r   r   r   r   r      s    	r   c                   @   s*   e Zd Ze ZG dd dZdd ZdS )UserSerializerc                   @   s   e Zd ZeZg dZdgZdS )zUserSerializer.Meta)
r   r   r   r   r   r   r   r	   	is_activedate_joinedr$   N)r   r   r   r   modelfieldsread_only_fieldsr   r   r   r   Meta!   s    
r(   c                 C   s   |j  d|j  p|jS )Nr
   )r   r   r   r   )r   objr   r   r   get_full_name&   s   zUserSerializer.get_full_nameN)r   r   r   r   SerializerMethodFieldr   r(   r*   r   r   r   r   r"      s    r"   c                   @   sD   e Zd ZejdddZejddZG dd dZdd Zd	d
 Z	dS )UserCreateSerializerT   )
write_only
min_length)r.   c                   @   s   e Zd ZeZg dZdS )zUserCreateSerializer.Meta)r   r   r   r   passwordconfirm_passwordr   N)r   r   r   r   r%   r&   r   r   r   r   r(   .   s    r(   c                 C   s$   |d | dkrtddi|S )Nr0   r1   zPasswords do not match.)popr   ValidationError)r   r   r   r   r   r   2   s   zUserCreateSerializer.validatec                 C   s   t jjdi |S )Nr   )r   objectscreate_user)r   validated_datar   r   r   create7   s   zUserCreateSerializer.createN)
r   r   r   r   	CharFieldr0   r1   r(   r   r7   r   r   r   r   r,   *   s    r,   N)
rest_frameworkr   django.contrib.auth.modelsr   $rest_framework_simplejwt.serializersr   r   ModelSerializerr"   r,   r   r   r   r   <module>   s    