
    i                     p   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
mZ d dlmZ  e       Zej                  de
       ee      fd	e	d
efd       Zej                  de
       ee      fded
efd       Zej'                  de
       ee      fded
efd       Zej'                  d      d        Zy)    )	APIRouterDependsHTTPException)Session   )Module10Service)Module10RequestModule10ResponsePeriodIncrease)get_dbz
/calculate)response_modelrequestdbc                    K   	 t        |      }|j                  |        d{   }|S 7 # t        $ r}t        dt	        |            d}~ww xY ww)z9Calculate Module 10 metrics with yearly increase analysisN  status_codedetail)r   calculate_metrics	Exceptionr   str)r   r   serviceresultes        F/var/www/html/retail-simulation-api/app/api/module10_metrics/router.pycalculate_module10_metricsr   	   sR     <!"%0099 : <CF;;<0   A, *, A, 	AAAAz"/calculate-from-db/{simulation_id}simulation_idc                    K   	 t        |      }|j                  |        d{   }|S 7 # t        $ r}t        dt	        |            d}~ww xY ww)z1Calculate Module 10 metrics using database inputsNr   r   r   calculate_from_simulationr   r   r   )r   r   r   r   r   s        r   calculate_from_databaser"      sS     <!"%88GG H <CF;;<r   z/metrics/{group_id}group_idc                    K   	 t        |      }|j                  |        d{   }|S 7 # t        $ r}t        dt	        |            d}~ww xY ww)z-Get Module 10 metrics for a specific group IDNr   r   r    )r#   r   r   r   r   s        r   get_group_metricsr%   #   sS     <!"%88BB C <CF;;<r   z/sample-requestc                     K   ddl m}  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ddddddddddddddddddddiiddddddddddddddd}|S w)z?Get a sample request showing all available input fields from UIr   )r   z1Sample Module 10 request with all UI input fieldsg      $@g       @g      @)Y1_Y2Y3_Y4Y5_Y6g      @g      @g      @g        g      @g      .@g      (@g      4@g      "@)investment_and_capital_expensespre_operating_expensesrental_advance_depositrent	inventorybills_per_monthaverage_price_per_itemother_income	utilitiescorporate_employee_salaryconcept_employee_salarystore_level_employee_salarylogistics_and_transportationcap_ex_refurbishY7_Y8g      9@)&online_investment_and_capital_expensesnumber_of_transactionsaverage_transaction_valuezKAll percentage values represent yearly increases for the respective periods)descriptionphysical_store_format_inputsr7   online_store_format_inputsnote)schemar   )r   samples     r   get_sample_requestrB   0   s      ' K9=VY/Z03cC&P03cC&P!C#>#'$F)-tL03cC&P&*TCH#&sC36s)S14sS'Q583QT+U69CRU,V)
  #
 AEt^a6b04td&S37#PS)T'

 ^3F8 Ms   A'A)N)fastapir   r   r   sqlalchemy.ormr   r   r   r@   r	   r
   r   app.database.main.mysqlr   routerpostr   intr"   getr%   rB        r   <module>rL      s    5 5 " $ E E *	\*:; &/
<
<
< <
< 1BRS &/
<
<
< T
< !2BC &/
<
<
< D
<    rK   