
    U
ib                         d dl mZ ddlmZmZmZ d dlmZ d dlm	Z	  G d dej
                  Z G d d	ej
                  Z G d
 dej
                  ZdS )    )serializers   )AreaEmpleadoUsuario)make_password)settingsc                   ,    e Zd ZdZ G d d          ZdS )AreaSerializerza
    Serializador para la tabla Area. Incluye el ID original de la gerencia si es relevante.
    c                       e Zd ZeZg dZdS )AreaSerializer.Meta)idnombregerencia_id_originalN)__name__
__module____qualname__r   modelfields     4/var/www/html/Desarrollo/tic/usuarios/serializers.pyMetar      s        999r   r   Nr   r   r   __doc__r   r   r   r   r   r   	   sF         : : : : : : : : : :r   r   c                   ,    e Zd ZdZ G d d          ZdS )EmpleadoSerializeru   
    Serializador de Lectura/Búsqueda para la base de Empleados. 
    Ideal para endpoints de autocompletado por docNumber, nombre, o email.
    c                       e Zd ZeZg dZeZdS )EmpleadoSerializer.Meta)	r   emailr   areadocTypecargojefecorreo_jefe	docNumberN)r   r   r   r   r   r   read_only_fieldsr   r   r   r   r      s.        
 
 
 "r   r   Nr   r   r   r   r   r      sF         " " " " " " " " " "r   r   c                        e Zd ZdZ ej        dd          Z ej                    Z G d d          Z	d Z
 fdZ fd	Z xZS )
UsuarioCreateUpdateSerializeru   
    Serializador ÚNICO para la creación, actualización, y lectura de datos básicos de Usuario.
    Maneja el hasheo de contraseña y las relaciones.
    zarea.nombreu	   Sin Área)sourcedefaultc                   0    e Zd ZeZg dZdddddddZdS )"UsuarioCreateUpdateSerializer.Meta)r   correotipoestadoccr!   area_nombrer   tokenimg_urlpaisciudad
contrasenaTF)
write_onlyrequired)	read_onlyr9   )r7   r1   N)r   r   r   r   r   r   extra_kwargsr   r   r   r   r-   1   sH        
 
 
 *.5AA $%88	
 
r   r   c                 D    |j         r|j         nd}t          j         d| S )Nzdefault.pngzprofile/)imgr	   	MEDIA_URL)selfobjimg_files      r   get_img_urlz)UsuarioCreateUpdateSerializer.get_img_urlA   s+    !g8377=$88h888r   c                     d|v r |d         rt          |d                   |d<   t                                          |          S )uA   Sobreescribe create para hashear la contraseña antes de guardar.r7   )r   supercreate)r?   validated_data	__class__s     r   rE   z$UsuarioCreateUpdateSerializer.createF   sG    >))n\.J)+89U+V+VN<( ww~~n---r   c                     d|v r%|d         rt          |d                   |_        |d= t                                          ||          S )uL   Sobreescribe update para hashear la contraseña si se proporciona una nueva.r7   )r   r7   rD   update)r?   instancerF   rG   s      r   rI   z$UsuarioCreateUpdateSerializer.updateN   sO    >))n\.J)"/|0L"M"MH|, ww~~h777r   )r   r   r   r   r   ReadOnlyFieldr2   SerializerMethodFieldr4   r   rB   rE   rI   __classcell__)rG   s   @r   r)   r)   &   s         
 ,++=+VVVK 0k/11G
 
 
 
 
 
 
 
 9 9 9
. . . . .8 8 8 8 8 8 8 8 8r   r)   N)rest_frameworkr   modelsr   r   r   django.contrib.auth.hashersr   django.confr	   ModelSerializerr   r   r)   r   r   r   <module>rS      s    & & & & & & + + + + + + + + + + 5 5 5 5 5 5            : : : : :[0 : : :" " " " "4 " " "$/8 /8 /8 /8 /8K$? /8 /8 /8 /8 /8r   