o
    i                     @   s   d dl mZ d dlmZ d dlmZ G dd dejZG dd dejZG dd	 d	ejZ	G d
d dejZ
G dd dejZdS )    )serializers)workflow)ColumnWorkflowc                   @      e Zd ZG dd dZdS )WorkflowSerializerc                   @      e Zd ZejZg dZdS )zWorkflowSerializer.Meta)idnombre
created_at
updated_at
deleted_atN__name__
__module____qualname__r   Workflowmodelfields r   r   1/var/www/html/crm_dreinet/workflow/serializers.pyMeta       r   Nr   r   r   r   r   r   r   r   r          r   c                   @   sN   e Zd ZejdddZejejdddddZejdd	dZG d
d dZ	dS )CreateWorkflowSerializerTNombre del workflowrequired	help_text   
max_lengthFLista de nombres de columnaschildr   r   D   Nombre de la columna inicial (si no existe se crea automáticamente)c                   @   r   )zCreateWorkflowSerializer.Meta)r	   columnasinicioColumnaNr   r   r   r   r   r      r   r   N)
r   r   r   r   	CharFieldr	   	ListFieldr&   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dZejejddddd	Z	ejdd
dZ
G dd dZdd ZdS )EditWorkflowSerializerTzID del workflow a editarr   Fr   r   r    r"   r#   r%   c                   @   r   )zEditWorkflowSerializer.Meta)r   r	   r&   r'   Nr   r   r   r   r   r   3   r   r   c                 C   s>   zt jjj|dd}|W S  t jjy   td| dw )NT)r   deleted_at__isnullzEl workflow con ID z no existe o ya fue eliminado)r   r   objectsgetDoesNotExistr   ValidationError)selfvalueworkflow_objr   r   r   validate_id<   s   z"EditWorkflowSerializer.validate_idN)r   r   r   r   IntegerFieldr   r(   r	   r)   r&   r'   r   r3   r   r   r   r   r*       s(    
	r*   c                   @   r   )ColumnWorkflowSerializerc                   @   s   e Zd ZeZg dZdS )zColumnWorkflowSerializer.Meta)r   workflow_idr	   ordenr
   r   r   N)r   r   r   r   r   r   r   r   r   r   r   D   s    r   Nr   r   r   r   r   r5   C   r   r5   c                   @   sJ   e Zd Ze Ze Ze ZG dd dZdd Z	dd Z
dd Zd	S )
WorkflowWithColumnsSerializerc                   @   r   )z"WorkflowWithColumnsSerializer.Meta)r   r	   r
   r   r   r&   r'   inicioColumnaIdNr   r   r   r   r   r   M   r   r   c                 C   s0   t jj|jddd}dd |D }d|S )NT)r6   r+   r7   c                 S   s   g | ]}|j r|j qS r   )r	   ).0cr   r   r   
<listcomp>S   s    z>WorkflowWithColumnsSerializer.get_columnas.<locals>.<listcomp>z, )r   r,   filterr   order_byjoin)r0   objr&   nombresr   r   r   get_columnasQ   s   
z*WorkflowWithColumnsSerializer.get_columnasc                 C   s&   t jj|jddd }|r|jS d S NT   )r6   r+   r7   )r   r,   r=   r   firstr	   r0   r@   columnar   r   r   get_inicioColumnaV      z/WorkflowWithColumnsSerializer.get_inicioColumnac                 C   s&   t jj|jddd }|r|jS d S rC   )r   r,   r=   r   rE   rF   r   r   r   get_inicioColumnaIdZ   rI   z1WorkflowWithColumnsSerializer.get_inicioColumnaIdN)r   r   r   r   SerializerMethodFieldr&   r'   r9   r   rB   rH   rJ   r   r   r   r   r8   H   s    r8   N)rest_frameworkr   Modelsr   !Models.oportunidad_de_venta_modelr   ModelSerializerr   r   r*   r5   r8   r   r   r   r   <module>   s    #