
    )i,                         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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j8                        Zy)    )viewsetsstatus)SearchFilterOrderingFilter)DjangoFilterBackend)Response)OuterRefSubqueryValue	CharField)CallBDCLimitOffsetPagination)DateRangeSerializerBDCCallSerializer)BDCCallsService)Company)BookingIntentFilter)Customerc                   :    e Zd ZeZeeegZe	Z
g dZg dZdgZd Zy)BDCCallsViewSet)from_number	to_number
transcriptsummary)
created_atdurationcostz-created_atc                    |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        |j                        }|j                  d	       |j                  j                  d
      }|j                  j                  d      }t        j                  |j                  ||      }t        j                  j!                  t#        d      t#        d            j%                  d      d d }|j'                  t)        |t+                           }| j-                  |      }| j/                  |      }	t1        |	d      }
| j3                  |
j4                        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.)dataT)raise_exception
start_dateend_date)companyr"   r#   
company_idr   )r%   phonename   )output_field)customer_name)many)useris_superuserquery_paramsgetr   r   HTTP_400_BAD_REQUESTactive_companyr   r   is_validvalidated_datar   fetch_callsr   objectsfilterr	   valuesannotater
   r   filter_querysetpaginate_querysetr   get_paginated_responser    )selfrequestr,   r   date_serializerr"   r#   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 
 .73G3GH   6$3377E
"1155jA(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orderingrD    rE   rC   r   r      s/    3*L.IO)OIM8OH3<rE   r   N)rest_frameworkr   r   rest_framework.filtersr   r   django_filters.rest_frameworkr   rest_framework.responser   django.db.modelsr	   r
   r   r   apps.calls.paginationr   apps.calls.serializersr   r   apps.calls.servicesr   apps.companies.modelsr   apps.calls.filtersr   apps.customers.modelsr   GenericViewSetr   rO   rE   rC   <module>r\      s;    + ? = , A A > I / ) 2 *<<h-- <<rE   