o
    g                     @   s4   d dl mZ d dlmZ e ZG dd dejZdS )    )serializers)get_user_modelc                       s   e Zd Ze Ze Ze Ze Zdd Z	dd Z
dd Zdd Zd	d
 Z fddZG dd dZe fddZ  ZS )BaseUserSerializerc                 C      |j S N)
created_atselfobj r   9/var/www/html/backend_erp/masters/serializers/baseuser.pyget_created_on      z!BaseUserSerializer.get_created_onc                 C   r   r   )
updated_atr   r   r   r   get_updated_on   r   z!BaseUserSerializer.get_updated_onc                 C      |  |jS r   )_get_user_name
created_byr   r   r   r   get_created_by_name      z&BaseUserSerializer.get_created_by_namec                 C   r   r   )r   
updated_byr   r   r   r   get_updated_by_name   r   z&BaseUserSerializer.get_updated_by_namec                 C   sF   |sd S zt jj|d}|j d|j  W S  t jy"   Y d S w )N)id )Userobjectsget
first_name	last_namestripDoesNotExist)r	   user_iduserr   r   r   r      s   z!BaseUserSerializer._get_user_namec                    s4   t  |}dD ]}||v r||}|||< q|S )N)created_by_name
created_onupdated_by_name
updated_on)superto_representationpop)r	   instancedatafieldvalue	__class__r   r   r(   "   s   
z$BaseUserSerializer.to_representationc                   @   s   e Zd ZdZdS )zBaseUserSerializer.MetaTN)__name__
__module____qualname__abstractr   r   r   r   Meta-   s    r4   c                    sJ   t t| jdg }d|vr|d d|vr|d || j_t |S )Nfieldsr#   r%   )listgetattrr4   appendr5   r'   build_standard_fields)cls	model_clsmeta_fieldsr.   r   r   r9   0   s   

z(BaseUserSerializer.build_standard_fields)r0   r1   r2   r   SerializerMethodFieldr#   r%   r$   r&   r   r   r   r   r   r(   r4   classmethodr9   __classcell__r   r   r.   r   r      s    	r   N)rest_frameworkr   django.contrib.authr   r   ModelSerializerr   r   r   r   r   <module>   s   