U
    [MhN                     @   s|   d Z ddlZddlmZmZmZ ddlmZ ddlm	Z	 ddl
Z
ddlmZ ddlmZmZ e	  dd	 Zed
krxe  dS )zF
Debug total time calculation to find why working hours are incorrect
    N)create_enginetextfunc)sessionmaker)load_dotenv)SessionLocal)datetimetimezonec               
   C   sV  t  } z>ztd td ttjjddddd}|jdddd}td| d	|  t  | t	j
t	j
j|kt	j
j|k }td
|  | tt	j
jt	j
j|kt	j
j|k pd}td|dd|d dd | t	j
jtt	j
jdt	j
j|kt	j
j|kt	j
j }tdd |D }td|dd|d dd t  td td |D ]4}|jd }t|jdd|jdd|dd qzt  td td | t	j
jt	j
jt	j
jt dt	j
j|kt	j
j|kt	j
jt	j
jt	j
jt dk }	|	r~tdt|	 d  |	D ]0}
td!|
j d|
jd"d#  d$|
j d% qJntd& t  td' td( | t	j
t	j
j|kt	j
j|kt	j
j d) }|D ]0}t|jd*d|jdd|jd"d#   qW n2 tk
rB } ztd+|  W 5 d"}~X Y nX W 5 |   X d"S ),zDebug total time calculationu(   🔍 Debugging Total Time Calculation...z<============================================================r   )hourminutesecondZmicrosecond   ;   )r
   r   r   zDate range: z to u'   📊 Total activity records for today: u*   ⏱️  Raw total duration (all records): z.2fz seconds = i  z hourstotal_durationc                 s   s   | ]}|j V  qd S )N)r   ).0result r   ./debug_total_time.py	<genexpr>7   s     z#debug_total_time.<locals>.<genexpr>u*   📈 Grouped total duration (API method): u   🔍 Breakdown by Application:z(----------------------------------------Z20z | z8.1fzs | z6.2fhu&   🔍 Checking for Duplicate Records...count   u   ⚠️  Found z duplicate record groups:z   N   z... | z duplicatesu   ✅ No duplicate records foundu   🔍 Sample Individual Records:z<------------------------------------------------------------
   Z15u   ❌ Error: )r   closeprintr   Znowr	   ZutcreplaceZquerymodelsZActivityRecordfilterZ	timestampr   r   sumZdurationZscalarZapplication_nameZlabelZgroup_byallr   Zwindow_titleZhavinglenZorder_byZdesclimit	Exception)ZdbZtodayZtomorrowZtotal_recordsZ	raw_totalZgrouped_resultsZgrouped_totalr   ZhoursZduplicate_checkdupZsample_recordsrecorder   r   r   debug_total_time   s    







(

	
0


2$r'   __main__)__doc__osZ
sqlalchemyr   r   r   Zsqlalchemy.ormr   Zdotenvr   r   Zdatabaser   r   r	   r'   __name__r   r   r   r   <module>   s   ]