
    RgE                        d dl mZmZmZ d dlmZ d dlmZmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZmZmZmZmZmZ  e       Zej1                  deeef   	       ed
d       ed
d       ed
d      d
d
 eddd       edddd       ee       ee      f	dede	e   de	e   de	e   de	e   de	e   dedededefd        Zej1                  d!eeef   	       ed
d       ed
d       ed
d      d
d
 eddd       edddd       ee       ee      f	dede	e   de	e   de	e   de	e   de	e   dedededefd"       Zej1                  d#eeef   	       ed
d       ed
d       ed
d      d
d
 ee       ee      fdede	e   de	e   de	e   de	e   de	e   dedefd$       Zej1                  d%eeef   	       ed
d       ed
d       ed
d      d
d
 ee       ee      fdede	e   de	e   de	e   de	e   de	e   dedefd&       Zej1                  d'eeef   	       ed
d       ed
d       ed
d      d
d
 eddd       edddd       ee       ee      f	dede	e   de	e   de	e   de	e   de	e   dedededefd(       Zej1                  d)      d
 ee       ee      fded*ede	e   dedef
d+       Z y
),    )	APIRouterDependsQuery)Session)DictAnyOptional)get_db)get_current_user)User)get_word_sentiment_analysisget_topic_sentiment_analysisfetch_rating_detailsfetch_feedback_summaryfetch_all_reviews_by_datecompare_sentimentsz/word_sentiment)response_modelNzFilter by feedback source)descriptionzStart date in YYYY-MM-DD formatzEnd date in YYYY-MM-DD format   zPage number (starts from 1))r   ge
   zNumber of records per paged   )r   r   le	branch_idsource
start_dateend_date
min_rating
max_ratingpage	page_sizedbcurrent_userc
                 *    t        | ||	|||||||
      S )zx
    API route to fetch word sentiment analysis with pagination.
    Calls controller function for data processing.
    )r   
r   r   r   r   r   r   r    r!   r"   r#   s
             8/var/www/html/hubwallet-dev/src/apps/sentiment/router.pyfetch_word_sentimentr'      s(    " '2|VZ:z[_aj     z/topic_sentimentc
                 *    t        | ||	|||||||
      S )zy
    API route to fetch topic sentiment analysis with pagination.
    Calls controller function for data processing.
    )r   r%   s
             r&   fetch_topic_sentimentr*   !   s(    " (2|VZ:z[_aj r(   z/rating_detailsc           
      &    t        | |||||||      S )z
    API route to fetch sentiment analysis results (Protected).
    - Ensures the branch belongs to the logged-in user.
    - Allows filtering by source and date range.
    )r   r   r   r   r   r   r   r"   r#   s           r&   get_rating_details_resultsr-   7   s        	2|VZQYZdfpqqr(   z/review_summaryc           
      &    t        | |||||||      S z|
    API route to fetch sentiment analysis results (Protected).
    - Ensures the branch belongs to the logged-in user.
    )r   r,   s           r&   get_review_summary_resultsr0   J   s      ")RvzS[\fhrssr(   z/review_detailsc
                 *    t        | ||	|||||||
      S r/   )r   r%   s
             r&   get_detailed_review_resultsr2   \   s0    " %YL&*V^_ikuw{  ~G  H  Hr(   z/sentiment/comparisoncomparison_frequencyc                 (   K   t        || |||      S w)z
    API to compare sentiment counts:
    - Yearly: Compares this year vs last year (grouped monthly).
    - Monthly: Compares this month vs last month (grouped by the same date).
    - Optional: Filter by feedback source.
    )r   )r   r3   r   r"   r#   s        r&   sentiment_comparisonr5   p   s      b)-A<QWXXs   )!fastapir   r   r   sqlalchemy.ormr   typingr   r   r	   src.utils.dbr
   src.apps.auth.controllerr   src.apps.users.modelsr   src.apps.sentiment.controllerr   r   r   r   r   r   sentiment_routergetstrintr'   r*   r-   r0   r2   r5    r(   r&   <module>rB      s3   - - " & &  5 & A  A; 'S#XG "$4OP %d8Y Z#D6UV $ $a%BqI2+GARUV&/ !12SM  sm	
     	  H* (c3hH "$4OP %d8Y Z#D6UV $ $a%BqI2+GARUV&/ !12SM  sm	
     	  I* 'S#XG "$4OP %d8Y Z#D6UV $ $&/ !12rrSMr r sm	r
 r r 	r r Hr$ 'S#XG "$4OP %d8Y Z#D6UV $ $&/ !12ttSMt t sm	t
 t t 	t t Ht" 'S#XG "$4OP %d8Y Z#D6UV $ $a%BqI2+GARUV&/ !12HHSMH H sm	H
 H H H H 	H H HH& -. !&/ !12YYY SMY 		Y
 Y /Yr(   