
    Api                         d dl mZ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  G d	 d
      Zy)    )CountQAvg)Round)action)Responsestatus)TRANSFER_STATUS)Call)CompanyTypec                   4    e Zd ZdZ eddgd      d        Zy)CallSummaryMixinzf
    Provides aggregated call summary statistics.
    Uses DRF filters + queryset scoping safely.
    Fgetsummary)detailmethodsurl_pathc           
         | j                         }|j                  j                  j                  t        j
                  k(  r4t        j                  j                  |j                  j                        }| j                  |      }|j                  t        d      t        dt        t        j                  j                              t        dt        t        j                   j                              t#        t%        d      d      t        dd	      
      }|d   xs d}|d   xs d}||d   xs d|d   xs d|d   xs d|t'        ||z
  d      d}t)        |t*        j,                        S )N)
dealershipid)transfer_status)filterduration   from_numberT)distinct)total_callstotal_missed_callstotal_attended_callsaverage_call_timeunique_callersr   r   r"   r   r    r!   )r   r   r    average_call_time_secondsr"   repeated_callersr	   )get_querysetuseractive_companycompany_typer   
DEALERSHIPr   objectsr   filter_queryset	aggregater   r   r   FAILEDvalue
SUCCESSFULr   r   maxr   r
   HTTP_200_OK)selfrequestqscalls_qsr   r   r"   report_datas           B/var/www/html/dp2/backend_v2.1/server/apps/calls/mixins/summary.pyr   zCallSummaryMixin.summary   sZ    <<&&33{7M7MM$$"<<66 % B ''+$$d$)?)?)E)EF  "')C)C)I)IJ" $C
OQ7 > % 
 m,1 !127a '")*>"?"D1$+,B$C$Hq)01D)E)J, #K.$@! D
 F,>,>??    N)__name__
__module____qualname____doc__r   r    r8   r7   r   r      s(    
 55'I>$@ ?$@r8   r   N)django.db.modelsr   r   r   django.db.models.functionsr   rest_framework.decoratorsr   rest_framework.responser   rest_frameworkr
   apps.calls.constantsr   apps.calls.modelsr   apps.companies.constantsr   r   r=   r8   r7   <module>rF      s,    * * , , , ! 0 " 0+@ +@r8   