
    @Li
                         d dl mZmZ d dlmZ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mZ d dlmZ d d	lmZ d d
lmZ d dlmZ  G d dej6                        Zy)    )viewsetsstatus)SearchFilterOrderingFilter)DjangoFilterBackend)Response)OuterRefSubquery	CharField)CallBDCLimitOffsetPagination)DateRangeSerializerBDCCallSerializer)BDCCallsService)BookingIntentFilter)Customer)get_date_range_from_requestc                   :    e Zd ZeZeeegZe	Z
ddgZg dZdgZd Zy)BDCCallsViewSetfrom_numbercustomer_name)
created_atdurationcostz-created_atc                 6   |j                   }|j                  r;|j                  j                  dd       }|s{t	        ddit
        j                        S |j                  st	        ddit
        j                        S |j                  j                  }|st	        ddit
        j                        S t        |t              \  }}t        j                  |j                  ||      }t        j                  j                  t!        d      t!        d	      
      j#                  d      d d }|j%                  t'        |t)                           }| j+                  |      }| j-                  |      }t/        |d      }	| j1                  |	j2                        S )N
bdc_numberdetailz$Please provide bdc_number parameter.)r   z!User must have an active company.z3Your company does not have a BDC number configured.)company
start_dateend_date
company_idr   )r    phonename   )output_field)r   T)many)useris_superuserquery_paramsgetr   r   HTTP_400_BAD_REQUESTactive_companyr   r   r   r   fetch_callsr   objectsfilterr	   valuesannotater
   r   filter_querysetpaginate_querysetr   get_paginated_responsedata)
selfrequestr&   r   start_dtend_dtcalls_querysetcustomer_subquerypage
serializers
             C/var/www/html/dp2/backend_v2.1/server/apps/calls/views/bdc_calls.pylistzBDCCallsViewSet.list   s   || --11,EJEF!66 
 &&BC!66 
 ,,77JTU!66 
 7
&
 )44''
 %,,33-=) 4 
 &.!
 (00"#49;O 1 
 --n= %%n5&t$7
**:??;;    N)__name__
__module____qualname__r   pagination_classr   r   r   filter_backendsr   filterset_classsearch_fieldsordering_fieldsorderingr>    r?   r=   r   r      s9    3*L.IO)OM 9OH2<r?   r   N)rest_frameworkr   r   rest_framework.filtersr   r   django_filters.rest_frameworkr   rest_framework.responser   django.db.modelsr	   r
   r   apps.calls.paginationr   apps.calls.serializersr   r   apps.calls.servicesr   apps.calls.filtersr   apps.customers.modelsr   apps.calls.utilsr   GenericViewSetr   rI   r?   r=   <module>rV      s;    + ? = , : : > I / 2 * 8><h-- ><r?   