
    s0i	                        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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Zd dlmZ  ej>                  e       Z! G d dejD                        Z#y)    )viewsetsstatus)action)IsAuthenticated)SearchFilterOrderingFilter)DjangoFilterBackend)Response)TonyCall)TonyCallListSerializerTonyCallDetailSerializer)TonyCallFilter)OurLimitOffsetPaginationLimitOffsetPagination)TonyCallRepository)TonyCallServiceNCompanyPermissionc                       e Zd ZdZ ej
                         ZeZe	gZ
eZeeegZeZg dZg dZ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
    )
transcriptcall_idcalled_number	called_to	intention)call_date_time
created_atbooking_datetimez-call_date_timec                     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_permissions%   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_class(   s    ;;& ))''r%   c                     t        j                         }t        | j                  j                        }|j                  |      }|S )Nuser)r   base_querysetr   requestr+   scope_queryset_to_user)r"   repo_qsserviceqss       r#   get_querysetzTonyCallViewSet.get_queryset-   s9    $224!t||'8'89++G4	r%   Fgetsummary)detailmethodsurl_pathc                     | j                  | j                               }t        |j                        }|j	                  |      }t        |t        j                        S )z
        Return aggregated counts for filtered dataset.
        Supports the same filters as list (applies filter_queryset).
        r*   )r   )filter_querysetr2   r   r+   	summarizer
   r   HTTP_200_OK)r"   r-   filtered_qsr0   datas        r#   r4   zTonyCallViewSet.summary4   sN     **4+<+<+>?!w||4  -V%7%788r%   N)__name__
__module____qualname____doc__r   r,   querysetr   serializer_classr   permission_classesr   pagination_classr	   r   r   filter_backendsr   filterset_classsearch_fieldsordering_fieldsorderingr$   r(   r2   r   r4    r%   r#   r   r      s     0!//1H-+,,*L.IO$OXMJO!"H6(
 55'I>9 ?9r%   r   )$rest_frameworkr   r   rest_framework.decoratorsr   rest_framework.permissionsr   rest_framework.filtersr   r   django_filters.rest_frameworkr	   rest_framework.responser
   apps.calls.modelsr   apps.calls.serializersr   r   apps.calls.filtersr   utils.paginationsr   r   apps.calls.repositoriesr   apps.calls.servicesr   loggingapps.permissions.permissionsr   	getLoggerr>   loggerReadOnlyModelViewSetr   rK   r%   r#   <module>r]      sS    + , 6 ? = , & S - M 6 /  :			8	$*9h33 *9r%   