o
    Uh1                  
   @   s  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mZmZ d dlmZ d dlmZ d dlmZmZ d dl mZ d d	lZd d
lmZ e Zejddddedeeeef deeeef fddZejdddeeeefdededefddZejde	e ddeeeefdededefddZ ej!ddddedeeeef deeeef fddZ"ededeefd edefd!d"Z#d	S )#    )	APIRouterDependsFile
UploadFile)Session)	AnnotatedList)NetworkPlanningCreateNetworkPlanningResponseNetworkPlanningUpdate)NetworkPlanningService)get_db)JWTPayloadSchemaget_current_student)HTTPExceptionN)TblGroupDataz/create_network_planT)response_model_exclude_nonerequestdbtokenc                       t ||| I d H S N)r   create_network_planr   r   r    r   1/var/www/html/RetailAPI/app/api/network/router.pyr         r   z#/create_network_plan/get/{group_id}group_idc                    r   r   )r   get_networkr   r   r   r   r   r   get_simulation   r   r    z-/create_network_plan/{group_id}/total_network)response_modelr   c                    r   r   )r   get_network_by_groupr   r   r   r   get_total_consumption_by_group   r   r#   z/update_network_planc                    r   r   )r   update_network_planr   r   r   r   r$      r   r$   z/upload_group_data_excel/.filec              
      sz  | j dstdddt| j}dd |jD |_| D ]\}}|t	|d }|
d}|r<t|d d }|td1i d	|d
|
dd|
dd|
dd|
dd|
dd|
dd|
dd|
dd|
dd|
dd|
dd |
d!d"|
d#d$|
d%d&|
d'd(|
d)d*|
d+d,|
d- q |  d.d/d0S )2N)z.xlsz.xlsxi  zOnly Excel files are allowed)status_codedetailc                 S   s   g | ]}|  qS r   )strip).0colr   r   r   
<listcomp>$   s    z upload_excel.<locals>.<listcomp>zGROUP NOd   group_noformat_typezFORMAT TYPEreference_retailerzREFERENCE RETAILERno_of_storeszNO OF STORESindicative_categorieszIndicative categoriesno_of_sub_cats_lzNo of Sub Cats(L)no_of_sub_cats_mzNo of Sub Cats(M)no_of_sub_cats_hzNo of Sub Cats(H)indicative_size_sqftzIndicative Size [Sqaure Feet]indicative_capital_rs_crz:Indicative Capital Available (O*50*0.6/100) [Rs in Crores]!approx_investment_per_store_lakhsz.Approx Investment  Per store [in Rupees Lakhs]competition_intensity_lzCompetition intensity Lcompetition_intensity_mzCompetition intensity Mcompetition_intensity_hzCompetition intensity Htech_investment_h_lakhsz$Technology Investment in Rs.Lakhs(H)tech_investment_m_lakhsz$Technology Investment in Rs.Lakhs(M)tech_investment_l_lakhsz$Technology Investment in Rs.Lakhs(L)spillage_factor_hzSpillage Factor (H)spillage_factor_lzSpillage Factor (L)1z Excel data uploaded successfully)statusmessager   )filenameendswithr   pd
read_excelr%   columnsiterrowswherenotnullgetstraddr   commit)r%   r   df_row	clean_rowr-   r   r   r   upload_excel   sf   








	











rS   )$fastapir   r   r   r   sqlalchemy.ormr   typingr   r   app.api.network.schemasr	   r
   r   app.api.network.servicer   app.database.main.mysqlr   app.dependency.authanticationr   r   r   pandasrE   app.models.main.group_datar   network_planning_routerpostr   rK   intr    r#   putr$   rS   r   r   r   r   <module>   s*    0&&0&