
    Sij	                         d dl mZmZ d dl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 d d	lmZ d d
lmZ d dlmZmZ d dlZ ej4                  e      Z G d dej:                        Zy)    )viewsetsstatus)action)Response)SearchFilterOrderingFilter)DjangoFilterBackend)LimitOffsetPaginationCompanyPermission)TonyCallFilter)TonyCallService)TonyCallRepository)TonyCallListSerializerTonyCallDetailSerializerNc                       e Zd ZdZ ej
                         ZeZg Z	e
ZeeegZeZddgZg dZddgZd Zd Zd	 Z ed
dgd      d        Zy)TonyCallViewSetz
    Read-only endpoint for TonyCall with filtering, searching, ordering and pagination.
    - list: paginated list
    - retrieve: detail
    - summary: basic aggregated stats of the filtered set
    call_idcalled_number)call_date_timer   	called_torescheduledbooking_datetimer   
created_atr   z-call_date_timez-call_idc                     t        d      gS )Nview_tony_callsr   selfs    D/var/www/html/dp2/backend_v2.1/server/apps/calls/views/tony_calls.pyget_permissionszTonyCallViewSet.get_permissions5   s    !"3455    c                 8    | j                   dk(  rt        S t        S )Nlist)r   r   r   r   s    r   get_serializer_classz$TonyCallViewSet.get_serializer_class8   s    ;;& ))''r!   c                 |    t        | j                  j                        }|j                  | j                        }|S )Nuser)r   requestr'   scope_queryset_to_userqueryset)r   serviceqss      r   get_querysetzTonyCallViewSet.get_queryset=   s/    !t||'8'89++DMM:	r!   Fgetsummary)detailmethodsurl_pathc                     t        |j                        }|j                  | j                  | j	                                     }t        |t        j                        S )z
        Return aggregated counts for filtered dataset.
        Supports the same filters as list (applies filter_queryset).
        r&   )r   )r   r'   	summarizefilter_querysetr-   r   r   HTTP_200_OK)r   r(   r+   datas       r   r/   zTonyCallViewSet.summaryC   sI     "w||4  !5!5d6G6G6I!JKV%7%788r!   N)__name__
__module____qualname____doc__r   base_querysetr*   r   serializer_classpermission_classesr
   pagination_classr	   r   r   filter_backendsr   filterset_classsearch_fieldsordering_fieldsorderingr    r$   r-   r   r/    r!   r   r   r      s     0!//1H-,*L.IO$OM
	O ":/H6(
 55'I>9 ?9r!   r   )rest_frameworkr   r   rest_framework.decoratorsr   rest_framework.responser   rest_framework.filtersr   r   django_filters.rest_frameworkr	   utils.paginationsr
   apps.permissions.permissionsr   apps.calls.filtersr   apps.calls.servicesr   apps.calls.repositoriesr   apps.calls.serializersr   r   logging	getLoggerr8   loggerReadOnlyModelViewSetr   rE   r!   r   <module>rU      sS    + , , ? = 3 : - / 6  
		8	$69h33 69r!   