U
    !h                  
   @   s  d Z ddlmZmZ ddlmZ ddlZddlmZmZ ddl	Z	ed e
ddZed	 ed
 zfeeZe JZed ed eedZe Zedee  eD ]Zeded  d eded   eded   eded   eed r*ded dd  dnd eded   eded   ed ed!   qed" ed eed#Ze Zed$ee  eD ]bZed%ed   ed&ed   ed'ed   ed(ed   ed)ed d* qed+ ed e edd, Zeed-d.eiZe ZereD ].Zeed  d/ed  d0ed d*d1 qPned2 ed3 ed eed4Ze Zered5 eD ],Zed6ed  d7ed  d8ed   qned9 ed: ed eed;Ze ZeeD ]\ZZ ed<ed  d ed=e d   ed>e d   ed?e d  d@ e d r(zLe!e d e"re	#e d ne d Z$edAe	j%e$ddBddC  d W n,   edAe"e d ddC  d Y nX q(edD ed eedEZedF eD ]:Z&ed6e&d  d7e&d  dGe&d dHkr\dIndJ  q.eedKZedL eD ]:Z&ed6e&d  d7e&d  dGe&d dHkrdIndJ  qW 5 Q R X W n@ e'k
r Z( z edMe(  edNe  W 5 dZ([(X Y nX dS )Oz&
Check developer data in the database
    )create_enginetext)load_dotenvN)datetime	timedeltaz.envDATABASE_URLz7postgresql://postgres:asdf1234@localhost:5432/timesheetu   🔍 Checking Developer Data...z<============================================================u   
📋 DEVELOPERS TABLE:z(----------------------------------------a&  
            SELECT 
                id,
                developer_id,
                name,
                email,
                api_token,
                active,
                created_at,
                last_sync
            FROM developers
            ORDER BY created_at DESC
        zTotal Developers: z
Developer #:z  ID:    z  Name:    z	  Email:       z	  Token:    z...zNo tokenz
  Active:    z  Created:    z  Last Sync:    u   

📊 ACTIVITY RECORDS:a  
            SELECT 
                developer_id,
                COUNT(*) as record_count,
                MIN(timestamp) as first_activity,
                MAX(timestamp) as last_activity,
                SUM(duration) / 3600.0 as total_hours
            FROM activity_records
            WHERE developer_id IS NOT NULL
            GROUP BY developer_id
            ORDER BY last_activity DESC
        zDevelopers with Activities: z
Developer: z  Records: z  First Activity: z  Last Activity: z  Total Hours: z.2fu&   

⏰ RECENT ACTIVITY (Last 24 hours):)Zdaysa   
            SELECT 
                developer_id,
                COUNT(*) as activities,
                SUM(duration) / 3600.0 as hours
            FROM activity_records
            WHERE timestamp > :yesterday
            GROUP BY developer_id
            ORDER BY hours DESC
        	yesterdayz: z activities, z hoursz No activity in the last 24 hoursu   

🔧 SYNC STATUS:z
            SELECT d.developer_id, d.name, d.created_at
            FROM developers d
            LEFT JOIN activity_records ar ON d.developer_id = ar.developer_id
            WHERE ar.id IS NULL
            AND d.active = true
        z!Developers with NO activity data:z  - z (z) - Registered: u,   ✅ All active developers have activity datau-   

📝 SAMPLE ACTIVITY DATA (Last 5 records):z
            SELECT 
                developer_id,
                timestamp,
                duration,
                activity_data
            FROM activity_records
            ORDER BY timestamp DESC
            LIMIT 5
        z
Record z  Developer: z  Time: z  Duration: z secondsz  Data: )indent   u   

🏗️ TABLE STRUCTURE:z
            SELECT column_name, data_type, is_nullable
            FROM information_schema.columns
            WHERE table_name = 'developers'
            ORDER BY ordinal_position
        zDEVELOPERS table columns:z) ZYES zNOT NULLz
            SELECT column_name, data_type, is_nullable
            FROM information_schema.columns
            WHERE table_name = 'activity_records'
            ORDER BY ordinal_position
        z 
ACTIVITY_RECORDS table columns:u   ❌ Error: zDatabase URL: ))__doc__Z
sqlalchemyr   r   Zdotenvr   osr   r   Zjsongetenvr   printZengineZconnectZconnZexecuteresultZfetchallZ
developerslenZdevZ
activitiesZactZnowr   ZrecentrZno_activityZsamples	enumerateiZsample
isinstancestrloadsdatadumpscol	Exceptione r&   r&   ./check_developer_data.py<module>   s   *
	.,
&&*8F