U
    [Mho                     @   sV   d Z ddlmZmZmZ ddlmZ ddlZddlmZm	Z	 dd Z
edkrRe
  dS )	z5
Debug working hours calculation to see what's wrong
    )datetimetimezone	timedelta)SessionLocalN)funcand_c               
   C   s  t  } zvz,td td tdddtjd}|jddddd}|jd	d
d
dd}td|   td | t	j
tt	j
jdkt	j
j|kt	j
j|kt	j
j  }tdt|  i }d}|D ]}|j}|j}	||	7 }||krddg d||< || d  d7  < || d  |	7  < || d |jt|jdkr\|jdd d n|j|	d qtd|d dd t  td td t| dd  d!d"D ]\}}
|
d d }t|  d#|dd$|
d  d% t|
d d&d  d!d"dd' }|D ]6}|d( d }td)|d*  d#|dd+|d,   qt  qtd- td d.d/d0g}d}|D ]D}||krl|| d }||7 }|d }td1| d#|dd2 qld3|kr|d3 d }|d4 }||7 }|d }|d }td5|dd6|dd7 |d }td8|dd9 td:|| d; d<d= W nB tk
rz } z"td>|  ddl}|  W 5 d}~X Y nX W 5 |   X dS )?z#Debug the working hours calculationu(   🔍 Debugging Working Hours Calculationz<============================================================i  	      )Ztzinfor   )ZhourZminutesecondZmicrosecond   ;   i?B u   📅 Analyzing z(----------------------------------------   zTotal activities: )count
total_time
activitiesr      r   r   2   Nz...)apptitledurationzTotal time: i  z.2fz hoursu   📊 Category Breakdown:z2--------------------------------------------------c                 S   s   | d d S )Nr   r    xr   r   ./debug_working_hours.py<lambda>C       z%debug_working_hours.<locals>.<lambda>T)keyreversez: zh (z activities)c                 S   s   | d S )Nr   r   r   r   r   r   r   H   r      r   u     • r   zh - r   u(   🎯 What Should Count as Working Hours:ZdevelopmentdatabaseZproductivityu   ✅ zh (100% productive)Zbrowserg      ?u   ⚠️ browser: z	h total, zh work-related (50%)u   
🎯 CORRECTED WORKING HOURS: hu   📊 Productivity Rate: d   z.1f%u   ❌ Error: )r   closeprintr   r   ZutcreplacedateZquerymodelsZActivityRecordfilterr   Zuser_idZ	timestampZorder_byZascalllencategoryr   appendZapplication_nameZwindow_titlesorteditemsupper	Exception	traceback	print_exc)ZdbZtarget_dateZstart_of_dayZ
end_of_dayr   Zcategory_datar   Zactivityr+   r   dataZhoursZtop_activitiesZactZ	act_hoursZproductive_categoriesZworking_timeZcat_timeZbrowser_timeZwork_browser_timeZ
work_hoursZtotal_working_hourser1   r   r   r   debug_working_hours
   s    





&
$(



r5   __main__)__doc__r   r   r   r   r   r'   Z
sqlalchemyr   r   r5   __name__r   r   r   r   <module>   s   g