
    7hH6                        d dl mZmZ d dlmZmZmZmZ  G d de      Z G d de      Z	 G d de      Z
 G d	 d
e      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d e      Z G d! d"e      Z G d# d$e      Z G d% d&e      Z G d' d(e      Z G d) d*e      Z G d+ d,e      Z G d- d.e      Z G d/ d0e      Z G d1 d2e      Z G d3 d4e      Z  G d5 d6e      Z! G d7 d8e      Z" G d9 d:e      Z# G d; d<e      Z$ G d= d>e      Z% G d? d@e      Z& G dA dBe      Z' G dC dDe      Z( G dE dFe      Z) G dG dHe      Z* G dI dJe      Z+ G dK dLe      Z, G dM dNe      Z- G dO dPe      Z. G dQ dRe      Z/ G dS dTe      Z0 G dU dVe      Z1 G dW dXe      Z2 G dY dZe      Z3 G d[ d\e      Z4 G d] d^e      Z5 G d_ d`e      Z6 G da dbe      Z7 G dc dde      Z8 G de dfe      Z9 G dg dhe      Z: G di dje      Z; G dk dle      Z< G dm dne      Z= G do dpe      Z> G dq dre      Z? G ds dte      Z@yu)v    )	BaseModelField)ListOptionalDictAnyc                   @    e Zd ZU eed<   dZee   ed<   dZee   ed<   y)BrandReportData
brand_nameN
brand_logo	rationale)__name__
__module____qualname__str__annotations__r   r   r        E/var/www/html/retail-simulation-api/app/api/module_reports/schemas.pyr
   r
      s#    O $J$#Ix}#r   r
   c                   r    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   dZee   ed<   dZee   ed	<   y)
SegmentReportDatanameisec_segmentchief_wage_earner_occupationhighest_educated_malehighest_educated_femalelocationNtotal_populationother_details)	r   r   r   r   r   intr   r   r   r   r   r   r   r   	   sA    
I"%%  M&*hsm*#'M8C='r   r   c                   |    e Zd ZU eed<   eed<   eed<   eed<   eed<   dZee   ed<   eed<   eed	<   dZee   ed
<   y)StoreFormatReportData
store_name
store_sizemerchandisepricing_strategyr   Nadditional_location_parametersservice_parameterstechnology_adoptionother_parameters)	r   r   r   r   r   floatr'   r   r*   r   r   r   r"   r"      sH    OM48"HSM8&*hsm*r   r"   c                   <    e Zd ZU eed<   eed<   eeeef      ed<   y)CapitalExpenseItemcategory
total_costitemsN)	r   r   r   r   r   r+   r   r   r   r   r   r   r-   r-      s     MS#Xr   r-   c                       e Zd ZU dZeed<   dZeed<   dZeed<   dZeed<   dZ	eed<   dZ
eed<   dZeed<   dZeed	<   dZeed
<   dZeed<   dZeed<   y)CapitalExpenseReportData        
civil_workracking_display_unitscarpentry_furnitureelectrical_cablingcommercial_equipmentsignage_display_boardsinformation_technologyvisual_merchandisingplumbingotherstotalN)r   r   r   r4   r+   r   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r   r   r   r2   r2   #   sw    J#&5&!$$ ##"%%%$'E'$'E'"%%%HeFEE5r   r2   c                   6    e Zd ZU eed<   eed<   dZee   ed<   y)DepreciationReportDatadepreciation_methoddepreciation_yearsNother_methods)r   r   r   r   r   r    rC   r   r   r   r   r@   r@   0   s    #'M8C='r   r@   c                       e Zd ZU eed<   ee   ed<   eed<   eed<   eed<   eed<   e	ed<   dZ
ee   ed	<   dZee   ed
<   y)Module1ReportResponsebrand_detailsconsumer_segmentsstore_format_astore_format_bcapital_expenses_format_acapital_expenses_format_bdepreciationNadditional_remarkskey_takeaways)r   r   r   r
   r   r   r   r"   r2   r@   rM   r   r   rN   r   r   r   rE   rE   5   sO    ""-..))))7777(((,,#'M8C='r   rE   c                   h    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   y
)CustomerSegmentEstimater   sample_sizeaverage_ageincome_levelsoccupation_modeeducation_level_modeshopping_frequency_per_monthhousehold_consumption_per_monthtotal_household_consumptionN)r   r   r   r   r   r    r+   r   r   r   rP   rP   A   s8    "''%**!&&r   rP   c                   ^    e Zd ZU eed<   eed<   eed<   eed<   dZee   ed<   dZ	ee   ed<   y)CatchmentPotentialDatar   number_of_householdspercentage_of_segmentpotential_householdsNassumptionssources)
r   r   r   r   r   r    r+   r^   r   r_   r   r   r   rZ   rZ   L   s6      !%K#%!GXc]!r   rZ   c                   J    e Zd ZU eed<   eed<   eed<   eed<   dZee   ed<   y)CompetitorBenchmarkDatareference_competitornumber_of_bills_per_monthnumber_of_items_per_billaverage_price_per_itemNother_remarks)	r   r   r   r   r   r    r+   rf   r   r   r   r   ra   ra   T   s(    ""!!!!#'M8C='r   ra   c                   r    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   dZee	ee
f      ed	<   y)
LocationCharacteristicstrading_radiusadjacenciescorner_propertyhigh_streetmallparking_spaceconversion_factorNadditional_details)r   r   r   r+   r   r   boolrp   r   r   r   r   r   r   rh   rh   [   sC    
J37c3h07r   rh   c                   ^    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   dZee   ed<   y)	SalesEstimateDatacogs_percentagerc   rd   re   sales_valuesales_potentialNremarks)	r   r   r   r+   r   r    rw   r   r   r   r   r   rs   rs   e   s4    ""!!!!!GXc]!r   rs   c                   J    e Zd ZU eed<   eed<   eed<   eed<   dZee   ed<   y)RentExpenseDatastore_size_sqftrental_advance_amountrental_advance_periodrent_per_monthNr   )	r   r   r   r+   r   r    r   r   r   r   r   r   ry   ry   n   s(      #Ix}#r   ry   c                       e Zd ZU ee   ed<   eed<   ee   ed<   eed<   eed<   eed<   ee	   ed<   e
ed<   e
ed	<   eed
<   eed<   eed<   eed<   dZee   ed<   dZee   ed<   y)Module2ReportResponsecustomer_segmentsrX   catchment_potentialestimated_market_sharecompetition_intensityspillage_factorcompetitor_benchmarkinglocation_details_format_alocation_details_format_bsales_estimate_format_asales_estimate_format_brent_details_format_arent_details_format_bNrM   rN   )r   r   r   r   rP   r   r+   rZ   r   ra   rh   rs   ry   rM   r   rN   r   r   r   r   r   u   s    344!&&455!!!"9::6666....****(,,#'M8C='r   r   c                   T    e Zd ZU eed<   eed<   eed<   dZee   ed<   dZ	ee   ed<   y)LocationSelectionDatalocation_name	area_sqkmhousehold_populationNr   r_   )
r   r   r   r   r   r+   r    r   r   r_   r   r   r   r   r      s0    #Ix}#!GXc]!r   r   c                       e Zd ZU eed<   dZeed<   dZeed<   dZeed<   dZ	eed<   dZ
eed<   dZeed<   dZeed	<   dZeed
<   dZeed<   dZeed<   dZeed<   dZeed<   dZee   ed<   y)NetworkPlanningDatar   r   year_1_format_ayear_1_format_byear_2_format_ayear_2_format_byear_3_format_ayear_3_format_byear_4_format_ayear_4_format_byear_5_format_ayear_5_format_btotal_format_atotal_format_bNr   )r   r   r   r   r   r   r    r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s    OSOSOSOSOSOSOSOSOSOSNCNC#Ix}#r   r   c                   J    e Zd ZU eed<   eed<   dZee   ed<   dZee   ed<   y)TradingMonthsDatastore_format_a_monthsstore_format_b_monthsNrationale_format_arationale_format_b)	r   r   r   r    r   r   r   r   r   r   r   r   r   r      s,    (,,(,,r   r   c                       e Zd ZU eed<   eed<   eed<   eed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed	<   d
Zeed<   d
Zeed<   y)PreOperatingExpenseDatar   r   marketing_expenses_format_amarketing_expenses_format_bNbenefits_format_abenefits_format_bother_remarks_format_aother_remarks_format_br3   !calculated_preop_expense_format_a!calculated_preop_expense_format_b)r   r   r   r+   r   r   r   r   r   r   r   r   r   r   r   r   r   r      sl        !&&!&&'+x}+'+x}+,0HSM0,0HSM0/2%u2/2%u2r   r   c                       e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   eed
<   eed<   eed<   eed<   eed<   y)StoreInvestmentSummaryData!capital_expenses_excl_it_format_a!capital_expenses_excl_it_format_bit_capital_expenses_format_ait_capital_expenses_format_b%total_store_capital_expenses_format_a%total_store_capital_expenses_format_brental_advance_format_arental_advance_format_bpre_operating_expenses_format_apre_operating_expenses_format_br   r    total_store_investments_format_a total_store_investments_format_bN)r   r   r   r+   r   r   r   r   r   r      sV    ',,',,"''"''+00+00""""%**%**!&&!&&&++&++r   r   c                       e Zd ZU eed<   eed<   ee   ed<   ee   ed<   e	ed<   e
ed<   eed<   dZee   ed	<   dZee   ed
<   y)Module3ReportResponsetarget_storesgeography_selectionlocation_selectionsnetwork_planningtrading_monthspre_operating_expensesstore_investment_summaryNrM   rN   )r   r   r   r    r   r   r   r   r   r   r   r   rM   r   rN   r   r   r   r   r      sU    344.//%%3388(,,#'M8C='r   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)CompetitorResearchDatarb   number_of_categories_stockedkey_categories_stockedstocking_observationsNr   r   r   r   r   r    r   r   r   r   r      s    "%%r   r   c                   "    e Zd ZU eed<   eed<   y)CustomerResearchDataresearch_methodologyshopping_behaviorNr   r   r   r   r   r   r   r   r   r      s    r   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)CategoryLevelDatastore_format_a_levelstore_format_a_categoriesstore_format_b_levelstore_format_b_categoriesNr   r   r   r   r   r      s    """"r   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)CategoryRoleDatacategory_namecategory_rolesales_contributionmargin_contributionNr   r   r   r   r   r+   r   r   r   r   r      s    r   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)GrossMarginContributionDatar   contribution_to_salesgross_marginsgross_margin_contributionNr   r   r   r   r   r      s      $$r   r   c                   ~    e Zd ZU eed<   eed<   eed<   ee   ed<   ee	   ed<   e
ed<   dZee   ed<   dZee   ed	<   y)
Module4ReportResponsecompetitor_researchcustomer_researchcategory_levelscategory_rolesgross_margin_contributions#total_weighted_average_gross_marginNrM   rN   )r   r   r   r   r   r   r   r   r   r   r+   rM   r   r   rN   r   r   r   r   r      sO    //++&&)** $%@ AA)..(,,#'M8C='r   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)VendorPriorityMatrixDatapriorityareametricsrw   N)r   r   r   r    r   r   r   r   r   r   r      s    M
ILLr   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)VendorScorecardDatametric	weightage
importancebatnaNr   r   r   r   r   r      s    KOJr   r   c                   6    e Zd ZU eed<   eed<   dZee   ed<   y)PrivateLabellingDatar   private_labelNr   r   r   r   r   r   r   r   r   r   r   r   r      s    #Ix}#r   r   c                   6    e Zd ZU eed<   eed<   dZee   ed<   y)CategoryCaptainshipDatar   category_captainshipNr   r   r   r   r   r   r     s    #Ix}#r   r   c                   v    e Zd ZU ee   ed<   ee   ed<   ee   ed<   ee   ed<   dZ	e
e   ed<   dZe
e   ed<   y)Module5ReportResponsevendor_priority_matrixvendor_scorecardprivate_labellingr   NrM   rN   )r   r   r   r   r   r   r   r   r   rM   r   r   rN   r   r   r   r   r   
  sO     !9::.//011677(,,#'M8C='r   r   c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)CompetitorPricingAnalysisrb   r&   highest_income_categorykey_observationsrf   Nr   r   r   r   r  r    s       r   r  c                   ,    e Zd ZU eed<   eed<   eed<   y)StoreFormatPricingstore_formatr&   r   Nr   r   r   r   r  r    s    Nr   r  c                   ,    e Zd ZU eed<   eed<   eed<   y)CategoryPricingr.   r&   r   Nr   r   r   r   r
  r
    s    MNr   r
  c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)CompetitorPromotionsAnalysisrb   ongoing_promotionsmost_effective_promotionr  rf   Nr   r   r   r   r  r  $  s     !!r   r  c                   J    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   y)YearlyPromotionmonthr.   promotion_typesuccess_metric	objectiverw   Nr   r   r   r   r  r  +  s"    JMNLr   r  c                   J    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   y)CompetitorLoyaltyAnalysisrb   has_loyalty_programloyalty_program_typer  usefulness_assessmentrf   N)r   r   r   r   r   rq   r   r   r   r  r  3  s&    r   r  c                   T    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   y)	LoyaltyProgramhas_programprogram_descriptionbudget_percentagebenefitsperilsdifferentiationother_notesN)r   r   r   rq   r   r   r+   r   r   r   r  r  ;  s*    MKr   r  c                       e Zd ZU eed<   ee   ed<   ee   ed<   eed<   ee	   ed<   e
ed<   eed<   dZee   ed	<   dZee   ed
<   y)Module6ReportDatacompetitor_pricingstore_format_pricingcategory_pricingcompetitor_promotionsyearly_promotionscompetitor_loyaltyloyalty_programNrM   rN   )r   r   r   r  r   r   r  r
  r  r  r  r  rM   r   r   rN   r   r   r   r$  r$  D  sY    11122?++77O,,11##(,,#'M8C='r   r$  c                   "    e Zd ZU eed<   eed<   y)BrandAttributeDatar   customer_ratingNr   r   r   r   r-  r-  P  s    
Ir   r-  c                   ,    e Zd ZU eed<   eed<   eed<   y)CompetitorComparisonData	attributereference_retailer	own_brandNr   r   r   r   r0  r0  T  s    NNr   r0  c                   T    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   y)	MarketingActivityDataactivity_namebudget_allocatedr  measurement_metrictarget_shopper_journeyestimated_budgetrw   Nr   r   r   r   r5  r5  Y  s*    NLr   r5  c                   ,    e Zd ZU eed<   eed<   eed<   y)CompetitorAnalysisDatar2  marketing_activity_briefr!  Nr   r   r   r   r<  r<  b  s    !!r   r<  c                       e Zd ZU eed<   y)SpaceResourceDatadescriptionNr   r   r   r   r?  r?  g      r   r?  c                       e Zd ZU eed<   y)NonSpaceResourceDatar@  Nr   r   r   r   rC  rC  j  rA  r   rC  c                       e Zd ZU eed<   y)ConsumerJourneyStageDatastageNr   r   r   r   rE  rE  m  s    Jr   rE  c                       e Zd ZU eed<   ee   ed<   eed<   ee   ed<   eed<   eed<   eed<   eed<   ee	   ed	<   e
ed
<   ee   ed<   ee   ed<   eed<   ee   ed<   eed<   eed<   eed<   y)Module7ReportResponser   brand_attributesrf   competitor_comparisonsbrand_positioning_statementmarketing_budget_percentagebudget_rationaletotal_marketing_budgetmarketing_activitiescompetitor_analysisspace_resourcesnon_space_resourcesincome_percentageconsumer_journey_predictionsstrategy_evolutionrM   rN   N)r   r   r   r   r   r   r-  r0  r+   r5  r<  r?  rC  rE  r   r   r   rH  rH  p  s    -.. !9::!$$!&&!!455//+,,233"&'?"@@r   rH  c                   T    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   y)	CorporateOfficeRoleDatarole_categorycost_to_companyy1_county2_county3_county4_county5_countNr   r   r   r   r   r+   r    r   r   r   rW  rW    '    MMMMMr   rW  c                   T    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   y)	ConceptOfficeRoleDatarX  rY  rZ  r[  r\  r]  r^  Nr_  r   r   r   rb  rb    r`  r   rb  c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)StoreLevelStaffDatadesignationaverage_salaryformat_a_countformat_b_countNr_  r   r   r   rd  rd    s    r   rd  c                   ,    e Zd ZU eed<   eed<   eed<   y)HRPolicyDatar2  hr_activity_briefpolicy_differentiationNr   r   r   r   rj  rj    s    r   rj  c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)UtilityDatautility_namecost_per_monthkey_usage_parametersrw   Nr   r   r   r   rn  rn    s    Lr   rn  c                   F    e Zd ZU eed<   eed<   eed<   ee   ed<   eed<   y)UtilitiesFormatDataelectricitywaterfuel_generationadditional_utilitiestotal_utility_costN)r   r   r   rn  r   r   r+   r   r   r   rs  rs    s%      {++r   rs  c                   ,    e Zd ZU eed<   eed<   eed<   y)OperatingExpenseDataexpense_typepercentage_of_salesrw   Nr   r   r   r   rz  rz    s    Lr   rz  c                       e Zd ZU ee   ed<   ee   ed<   ee   ed<   eed<   e	ed<   e	ed<   ee
   ed<   ee
   ed<   d	Zee   ed
<   d	Zee   ed<   y	)Module8ReportResponsecorporate_office_rolesconcept_office_rolesstore_level_staffhr_policy_analysisutilities_format_autilities_format_boperating_expenses_format_aoperating_expenses_format_bNrM   rN   )r   r   r   r   rW  r   rb  rd  rj  rs  rz  rM   r   r   rN   r   r   r   r~  r~    sm     !899455/00$$++++!%&:!;;!%&:!;;(,,#'M8C='r   r~  c                   F    e Zd ZU eed<   ee   ed<   eed<   eed<   eed<   y)AdaptingSupplyChainDataadapting_idwhat_are_some_categoriesremarks_about_these_categoriesdo_you_think_you_needat_which_point_and_whyN)r   r   r   r    r   r   r   r   r   r   r  r    s$    "3i'$''r   r  c                   t    e Zd ZU ee   ed<   eed<   ee   ed<   eed<   eed<   dZe	e   ed<   dZ
e	e   ed<   y)	Module9ReportResponseadapting_supply_chain_entriestotal_entriescategories_requiring_adaptationadaptation_needed_countadaptation_not_needed_countNrM   rN   )r   r   r   r   r  r   r    r   rM   r   rN   r   r   r   r  r    sG    #'(?#@@%)#Y.  !$$(,,#'M8C='r   r  N)Apydanticr   r   typingr   r   r   r   r
   r   r"   r-   r2   r@   rE   rP   rZ   ra   rh   rs   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r  r$  r-  r0  r5  r<  r?  rC  rE  rH  rW  rb  rd  rj  rn  rs  rz  r~  r  r  r   r   r   <module>r     s   % , ,$i $
(	 (	+I 	+   
y (Y (
	(I 	(	'i 	'"Y "(i (8i 8"	 "$i $(I ($"I "$) $ -	 -
3i 
3, , 	(I 	(Y 9 #	 #y %) %(I (y ) $9 $
$i $
(I (	  
i 
9 i 	 Y 	(	 	( y 
I Y 
	 9 y I (i I )  9  
) ) 9 

(I 
( i  (I (r   