
    cg              
           d dl mZmZmZmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ  e       Zej'                  d       ed	d
d	       eddd	d       ee       ee      fdedededefd       Zy)    )	APIRouterDependsHTTPExceptionQuery)Session)funccase)get_db)get_current_user)Branch)Recommendationz/recommendations_list   zPage number (starts from 1))descriptionge
   zNumber of records per paged   )r   r   le	branch_idpage	page_sizedbc           
         |j                  t              j                  t        j                  | k(  t        j                  |j                  k(        j                         }|st        ddddi d      	 |j                  t        j                  t        j                              j                  t        j                  | k(        j                         }|j                  t              j                  t        j                  | k(        j                  t        t        j                  j                  d      dft        j                  j                  d      d	ft        j                  j                  d
      dfd      t        j                         j#                  |      j%                  |dz
  |z        j'                         }|sdddg dS |D cg c]<  }|j(                  |j*                  |j                  |j                   |j                  d> }	}||z   dz
  |z  }
ddd|	||
||ddS c c}w # t,        $ r }t        ddddt/        |      d      d}~ww xY w)u   
    API to fetch recommendations from the database for a specific branch.
    Sorted by severity: High → Medium → Low, then by rank.
    Includes pagination.
    i  Fz"Unauthorized access to this branch)statuscodemessagedata)status_codedetailhighr   medium   low   c   )else_i  z)No recommendations found for this branch.)recommendationtopicseverityrankr   T   z$Recommendations fetched successfully)total_recordstotal_pagescurrent_pager   )r   r   r   r   
paginationi  zError fetching recommendations)r   r   r   errorN)queryr   filterr   user_idfirstr   r   countr   recommendation_idscalarorder_byr	   r(   iliker)   limitoffsetallr&   r'   	Exceptionstr)r   r   r   r   userbranchtotal_recommendationsrecommendationsrecresponse_datar,   es               >/var/www/html/hubwallet-dev/src/apps/recommendations/router.pyget_stored_recommendationsrF      sG    XXf$$I%$,,& eg 
 #S=akmn
 	

<
 "N4T4T)U V ] ]$$	1!

&( 	
 ((>299$$	1

(((..v6:((..x8!<((..u5q9	 
 %	
664!8y"89##% 	 F	   '	
  #&"4"4LL ]]	
 	
 -y81<J =!!6* $&	
 	
	
6  
#S=]hklmhno
 	

s2   5EH1 H1 AH,H1 ,H1 1	I:IIN)fastapir   r   r   r   sqlalchemy.ormr   
sqlalchemyr   r	   src.utils.dbr
   src.apps.auth.controllerr   src.apps.stores.modelsr   src.apps.recommendations.modelsr   routergetintrF        rE   <module>rS      s    < < " !  5 ) : 
#$ a%BqI2+GARUV&/	!	"T
T

T
 T
 		T
 %T
rR   