
    '6IiU                         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Zd dl	Z	 e	j                  e      Z G d d      Zy)    )datetime	timedelta)Count)	TruncDate)timezoneNc                       e Zd Zedd       Zy)DailyCallsServiceNc                    | j                  ||      } t        j                         }|r7t        |dd      r*	 t	        j                  |j
                  j                        }| j                  t        d|            j                  d      j                  t        d      t        d	d
            j                  d      }|j                  |      j                         }|j                  |      j                         }t!        ||z
  j"                  dz         D 	ci c]  }	|t%        |	      z   ddd }
}	|D ].  }|d   }|d   xs d}|d   xs d}|t'        ||z
  d      d|
|<   0 t)        |
      D cg c]  }d|j+                  d      i|
|    c}S # t        $ r }t        j                  |       Y d}~]d}~ww xY wc c}	w c c}w )z6
        Daily calls summary (timezone-safe).
        )created_at__gtecreated_at__lteactive_companyN
created_at)tzinfo)dayr   idfrom_numberT)distinct)total_callsunique_callers   )daysr   )unique
repetitiver   r   datez%b-%d)filterr   get_default_timezonegetattrpytzr   	Exceptionloggerwarningannotater   valuesr   order_by
astimezoner   ranger   r   maxsortedstrftime)querysetstart_dtend_dtuser
company_tzexc	daily_agg
start_dateend_datei
days_rangerowr   r   totals                  H/var/www/html/dp2/backend_v2.1/server/apps/calls/services/daily_calls.pyget_summaryzDailyCallsService.get_summary   s    ??$" # 

 224
GD"2D9$!]]4+>+>+G+GH

 X)LDXEVE]X!$K$]TB   Xe_ 	 ((499;
$$Z0557 Hz177!;<
< **q,JJ< 	 

 Ce*C)*/aF&+!E !!%&.!4JsO  j)

 * W-S/ *
 	
A  $s##$"

s#   )F G8G	G#F>>G)N)__name__
__module____qualname__staticmethodr8        r7   r	   r	      s    4
 4
r>   r	   )r   r   django.db.modelsr   django.db.models.functionsr   django.utilsr   r   logging	getLoggerr9   r    r	   r=   r>   r7   <module>rD      s5    ( " 0 !   
		8	$7
 7
r>   