
    i2                     h    d dl mZ d dlmZmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ  G d d      Zy	)
    )Session)funcdesc)datetime	timedelta)ChatHistory)Feedback)UserSessionc                   N    e Zd ZdefdZdefdZdefdZdefdZd	dedefdZ	y)
AnalyticsServicedbc                 ~   |j                  t        j                  t        j                              j                         xs d}t        j                         j                         }t        j                  |t        j                  j                               }|j                  t        j                  t        j                              j                  t        j                  |k\        j                         xs d}|j                  t        j                  t        j                              j                         xs d}|j                  t        j                  t        j                  t        j                        j!                  d            j                  t        j                  j#                  d             j%                  t        j                        j'                  t)        d            j+                         }|r|d   nd}|j                  t        j                  t,        j                              j                  t,        j.                  dk(        j                         xs d}	|j                  t        j                  t,        j                              j                  t,        j.                  dk(        j                         xs d}
|j                  t        j                  t,        j                              j                  t,        j.                  dk(        j                         xs d}|||||	|
|dS )Nr   cnt-ResolvedzPartially ResolvedzNot Resolved)total_chatstodays_chatsactive_userstop_categoryresolved_countpartial_countunresolved_count)queryr   countr   idscalarr   utcnowdatecombinemintimefilter
created_atr
   detected_categorylabelisnotgroup_byorder_byr   firstr	   feedback_type)selfr   r   todaytoday_startr   r   top_category_rowr   r   r   r   s               R/home/techsaathi/public_html/it_helpdesk_chatbot/app/services/analytics_service.pysummaryzAnalyticsService.summary
   s<   hhtzz+..9:AACHq!&&(&&uhll.?.?.ABxx

;>> :;BB;CYCY]hChipprwvwxx

;>> :;BBDI HH[22DJJ{~~4N4T4TUZ4[\VK1177=>Xk334Xd5k"UW 	 /?'*C HHTZZ,-VH**j89VX 	 HHTZZ,-VH**.BBCVX 	 HHTZZ,-VH**n<=VX 	 '(((,* 0
 	
    c                 l   |j                  t        j                  t        j                  t        j
                        j                  d            j                  t        j                        j                  t        d            j                         }|D cg c]  }|d   xs d|d   d c}S c c}w )Nr   r   General   )categoryr   )r   r   r$   r   r   r   r%   r'   r(   r   allr+   r   rowsrs       r/   category_breakdownz#AnalyticsService.category_breakdown8   s    HH[22DJJ{~~4N4T4TUZ4[\Xk334Xd5k"SU	 	 IMM1QqT.Y1>MMMs   B1c                    |j                  t        j                  t        j                  t        j
                        j                  d            j                  t        j                  j                  d             j                  t        j                        j                  t        d            j                  d      j                         }|D cg c]  }|d   |d   d c}S c c}w )Nr   
   r   r4   )issue_titler   )r   r   r=   r   r   r   r%   r"   r&   r'   r(   r   limitr6   r7   s       r/   
top_issueszAnalyticsService.top_issuesA   s    HH[,,djj.H.N.Nu.UVVK++11$78Xk--.Xd5k"U2YSU 	 ?CC!qt4CCCs   C(c                    |j                  t              j                  t        j                  j	                               j                  d      j                         }|D cg c]l  }|j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  j                  d      dn c}S c c}w )N   z%Y-%m-%d %H:%M:%S)r   	user_name
departmentdevice_nameuser_messager=   r$   r#   )r   r   r(   r   r   r>   r6   rB   rC   rD   rE   r=   r$   r#   strftimer7   s       r/   recent_chatszAnalyticsService.recent_chatsL   s    HH[!Xknn))+,U2YSU	 	" 
  dd[[ll }} ! }}%&%8%8ll334GH	
 	
 
s   "A1Cdaysc                    t        j                         t        |dz
        z
  }|j                  t	        j
                  t        j                        j                  d      t	        j                  t        j                        j                  d            j                  t        j                  |k\        j                  t	        j
                  t        j                              j                  t	        j
                  t        j                              j                         }|D cg c]  }t        |d         |d   d c}S c c}w )Nr4   )rH   dtr   r   )r   r   )r   r   r   r   r   r   r   r#   r%   r   r   r"   r'   r(   r6   str)r+   r   rH   
start_dater8   r9   s         r/   daily_trendzAnalyticsService.daily_trenda   s    __&q)AA
HH		+00177=

;>>*007 VK**j89Xdii 6 678Xdii 6 678SU 	 =AAqQqTQqT2AAAs   )EN)   )
__name__
__module____qualname__r   r0   r:   r?   rG   intrM    r1   r/   r   r   	   sM    ,
' ,
\NW N	DW 	D
w 
*Bg BS Br1   r   N)sqlalchemy.ormr   
sqlalchemyr   r   r   r   app.models.chat_historyr   app.models.feedbackr	   app.models.user_sessionr
   r   rS   r1   r/   <module>rY      s%    " ! ( / ( /dB dBr1   