U
    Sh                  
   @   s   d dl mZmZ d dlZd dlmZ d dlmZmZmZ e  e	dZ
e
se	ddZe	dd	Ze	d
dZe	ddZe	ddZde de de de de 
Z
ee
Zdd Zedkre  dS )    )create_enginetextN)load_dotenv)datetimedate	timedeltaDATABASE_URLDB_HOSTZ	localhostDB_PORTZ5432DB_NAMEZtimesheet_dbDB_USERZpostgresDB_PASSWORD zpostgresql://:@/c                  C   sB  t d t &} t d | td}| }t d|d   t d|d   t d|d	   t d
 | td}| }|r|D ]<\}}}}|r|nd}t d| d| d| d|dd	 qnt d t }	t d|	 d dD ]}
| td|
|	d}| }|d dkrx|d r4|d nd}t d|
 d|d  d|dd t d|d	  d|d   qt d|
 d qt d | td}|D ].}t d |d  d|d  d!|d	  d" qt d# |r|r$|d d |	kr$t d$ t d% t d& t d' t d( nt d) t d* W 5 Q R X d+S ),z)Check if the issue is with date filteringz%=== Checking Date-Related Issues ===
z!1. Date range of activity data...a+  
            SELECT 
                MIN(timestamp) as earliest,
                MAX(timestamp) as latest,
                COUNT(DISTINCT DATE(timestamp)) as unique_days
            FROM activity_records
            WHERE developer_id IN ('ankita gholap', 'RiddhiDhakhara', 'ankita_gholap')
        z   Earliest: r   z   Latest:    z   Unique days:    z%
2. Activity count by recent dates...a  
            SELECT 
                DATE(timestamp) as activity_date,
                COUNT(*) as record_count,
                COUNT(DISTINCT developer_id) as developers,
                SUM(duration) / 3600 as total_hours
            FROM activity_records
            WHERE timestamp >= CURRENT_DATE - INTERVAL '7 days'
            GROUP BY DATE(timestamp)
            ORDER BY activity_date DESC
        z   z: z
 records, z developers, z.1fz hoursz   No data in the last 7 days!z
3. Checking data for today (z)...)zankita gholapZRiddhiDhakharaZankita_gholapak  
                SELECT 
                    COUNT(*) as count,
                    SUM(duration) as total_duration,
                    MIN(timestamp) as first_activity,
                    MAX(timestamp) as last_activity
                FROM activity_records
                WHERE developer_id = :dev_id
                AND DATE(timestamp) = :today
            )dev_idtodayz.0fz secondsz     First: z, Last:    z: No data for todayz
4. Sample timestamp values...a8  
            SELECT 
                id,
                timestamp,
                DATE(timestamp) as date_part,
                activity_data
            FROM activity_records
            WHERE developer_id IN ('ankita gholap', 'RiddhiDhakhara')
            ORDER BY timestamp DESC
            LIMIT 5
        z   ID z (Date: )z
5. ANALYSIS:uI      ⚠️ No data for today - the dashboard shows today's data by defaultz   Solutions:z0   1. Click on a different date in the dashboardz    2. Sync today's activity dataz8   3. Modify dashboard to show the latest available dateu      ✓ Data exists for todayz,   Check if duration values are properly setN)	printengineZconnectZexecuter   ZfetchoneZfetchallr   r   )ZconnresultrowZdatesZact_datecountZdevsZhoursZ	hours_valr   r   Zdurrecord r   ./check_date_issue.pycheck_date_issues   sR    	(
	",
r    __main__)Z
sqlalchemyr   r   osZdotenvr   r   r   r   getenvr   r	   r
   r   r   r   r   r    __name__r   r   r   r   <module>   s    
"a