o
    mi                     @   s   d dl mZmZmZmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dl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 G d
d deZG dd deZG dd deZG dd deZG dd deZdS )    )ListAPIViewCreateAPIViewUpdateAPIViewRetrieveAPIViewDestroyAPIView)Response)SearchFilterOrderingFilter)transaction)get_object_or_404)datetime)ConsultantDeleteAPISerializerConsultantListAPISerializerConsultantStoreAPISerializer)
Consultant)save_consultantc                   @   s0   e Zd ZeZeegZg dZg dZ	dd Z
dS )ConsultantListAPIView)idnametypephone_no
created_byemailnote)r   r   
type__namer   created_by__first_namecreated_by__last_namer   r   c                 C   sn   | j jd}| j jd}| j jd}tj }|dkr#tj }|r-|j|d}|S |r5|j|d}|S )Nconsultant_without_project_id
project_idwith_trashedtrue)Zproject_consultants__id)	requestquery_paramsgetr   objectsallr   excludefilter)selfr   r   r   queryset r*   K/var/www/html/kuke-dev/django-kuke/apps/consultant/views/ConsultantViews.pyget_queryset   s   

z"ConsultantListAPIView.get_querysetN)__name__
__module____qualname__r   serializer_classr   r	   filter_backendsordering_fieldssearch_fieldsr,   r*   r*   r*   r+   r      s    r   c                   @   s   e Zd ZeZejdd ZdS )ConsultantCreateAPIViewc                 O   sJ   | j |jd}|jdd |j}| jj|d< t|}| j |d}t|jS )N)dataTraise_exceptionr   instance)r0   r5   is_validvalidated_datar!   userr   r   )r(   r!   argskwargs
serializerr;   
consultantr*   r*   r+   post+   s   
zConsultantCreateAPIView.postN)r-   r.   r/   r   r0   r
   atomicrA   r*   r*   r*   r+   r4   (   s    r4   c                   @   s   e Zd ZdgZeZdd ZdS )ConsultantEditAPIViewpatchc                 O   sN   t t|d}| j||jd}|jdd t|j|jd}| j|d}t|jS )Npk)r9   r5   Tr6   r   r8   )	r   r   r0   r5   r:   r   r;   r   r   r(   r!   rF   r=   r>   r@   r?   r*   r*   r+   rD   >   s   
zConsultantEditAPIView.patchN)r-   r.   r/   http_method_namesr   r0   rD   r*   r*   r*   r+   rC   :   s    rC   c                   @   s   e Zd ZeZdd ZdS )ConsultantDeleteAPIViewc                 O   s@   t t|d}tjj|dj| jjt d | 	|}t
|jS )NrE   rG   )
deleted_by
deleted_at)r   r   r$   r'   updater!   r<   r   nowr0   r   r5   rH   r*   r*   r+   deleteN   s    

zConsultantDeleteAPIView.deleteN)r-   r.   r/   r   r0   rO   r*   r*   r*   r+   rJ   K   s    rJ   c                   @   s    e Zd ZeZej dZ	dS )ConsultantDetailAPIViewr   N)
r-   r.   r/   r   r0   r   r$   r   select_relatedr)   r*   r*   r*   r+   rP   X   s    rP   N)rest_framework.genericsr   r   r   r   r   rest_framework.responser   rest_framework.filtersr   r	   	django.dbr
   django.shortcutsr   r   Z2apps.consultant.serialziers.consultant_serializersr   r   r   apps.consultant.modelsr   Z,apps.consultant.services.consultant_servicesr   r   r4   rC   rJ   rP   r*   r*   r*   r+   <module>   s    