
    iH                     "   d dl mZmZmZ d dlmZ d dl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y)    )ListOptionalDict)datetime)CustomModelc                       e Zd ZU 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   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   ed<   dZee   ed<   y)CustomerSegmentEstimater   customer_location_idISEC_Segmentsample_sizeaverage_ageN/Aincome_levelsoccupation_modeeducation_level_modeshopping_frequency_per_monthhousehold_consumption_per_month%total_household_consumption_per_monthgroup_idN)__name__
__module____qualname__r
   r   int__annotations__r   r   r   r   strr   r   r   r   r   r        >/var/www/html/retail-simulation-api/app/api/module_2/schema.pyr	   r	      s    *+(3-+"#L(3-#!"K#"!"K#"#(M8C=(%*OXc]**/(3-/23 (3-356#Xc]6;<)8C=<Hhsmr   r	   c                       e Zd ZU 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   ed<   dZee   ed<   y	)
CatchmentPotentialr   catch_idr   number_of_households        percentage_of_segmentpotential_number_of_householdsr   N)r   r   r   r!   r   r   r   r   r"   r$   floatr%   r   r   r   r   r    r       sY    Hhsm"#L(3-#*+(3-+-08E?045"HSM5Hhsmr   r    c                   r    e Zd ZU 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   ed<   y)	CompetitionIntensityr   competitor_idr   upload_imageNtotal_square_footageassumptionsr   )r   r   r   r)   r   r   r   r*   r   r+   r,   r   r   r   r   r(   r(      sI    #$M8C=$"'L(3-'*.(3-.!&K#&Hhsmr   r(   c                       e Zd ZU 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   ed<   dZee   ed<   dZee   ed	<   y
)CompetitorBenchmarkingr   competitorbenchmarking_idr   reference_competitorbills_per_monthitems_pre_bill	avg_priceother_remarkr   N)r   r   r   r/   r   r   r   r0   r   r1   r2   r3   r4   r   r   r   r   r.   r.   %   sf    /0x}0*/(3-/%&OXc]&$%NHSM% Ix} "'L(3-'Hhsmr   r.   c                   ^    e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   y)LocationSpillageFactorr   location_idNestimated_spillage_factorr   r,   r   )r   r   r   r7   r   r   r   r8   r   r,   r   r   r   r   r6   r6   /   s;    !"K#"/3x}3!&K#&Hhsmr   r6   c                       e Zd ZU 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	   ed<   dZee	   ed<   dZee	   ed	<   dZee	   ed
<   i Zee   ed<   dZee	   ed<   dZee   ed<   y)LocationDetailsr   
details_idtrading_radiusr   trading_rationaladjacenciesadjacencies_rationallocation_characteristicscorner_property_rationalrationaldetailsNstore_format_typer   )r   r   r   r;   r   r   r   r<   r=   r   r>   r?   r@   rA   rB   rC   r   rD   r   r   r   r   r:   r:   5   s     !J!$%NHSM%&+hsm+!&K#&*/(3-/.3hsm3.3hsm3#Hhsm# GXd^ '+x}+Hhsmr   r:   c                       e Zd ZU 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   ed<   dZee   ed	<   y)
SalesEstimater   sales_idr   	parametervalueremarkNstore_formate_typer   )r   r   r   rG   r   r   r   rH   r   rI   rJ   rK   r   r   r   r   rF   rF   C   sW    Hhsm$Ix}$E8C=!FHSM!(,,Hhsmr   rF   c                       e Zd ZU 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   ed<   dZee   ed<   d	Zee   ed
<   dZee   ed<   y)RentExpensesr   rent_id
store_sizerental_advance_amountrental_advance_periodrent_per_monthNrD   r   rational_for_rental_expensesr   )r   r   r   rN   r   r   r   rO   rP   rQ   rR   rD   r   rS   r   r   r   r   rM   rM   L   sv    GXc] !J!+,8C=,+,8C=,$%NHSM%'+x}+27 (3-7Hhsmr   rM   c                   ^    e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   y)SalesSummaryComparisonNrD   r#   sales_potentialsales_estimater   r   )r   r   r   rD   r   r   r   rV   r&   rW   r   r   r   r   r   rU   rU   W   s;    '+x}+'*OXe_*&)NHUO)Hhsmr   rU   c                   ^    e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   y)Module2Summaryr   
summary_idr   promotions_submissionspromotions_summariser   N)r   r   r   rZ   r   r   r   r[   r   r\   r   r   r   r   rY   rY   ]   s<     !J!,1HSM1*/(3-/Hhsmr   rY   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
   ed<   ee   ed<   ee   ed<   ee   ed	<   ee   ed
<   eed<   eed<   edefd       Zedefd       Zedefd       Zedefd       Zedefd       Zy)Module2ReportPreviewr   customer_segment_estimatescatchment_potentialcompetition_intensitycompetitor_benchmarkinglocation_spillage_factorlocation_detailssales_estimatesrent_expensessales_summary_comparisonsummarylast_updatedreturnc                      yNr#   r   selfs    r   estimated_market_sharez+Module2ReportPreview.estimated_market_sharer       r   c                 6    | j                   j                  xs dS )Nr   )ra   r+   rm   s    r   total_sqft_of_competitionz.Module2ReportPreview.total_sqft_of_competitionv   s    ))>>G%Gr   c                     | j                   r2| j                   d   j                  r| j                   d   j                  S y)Nr   r   )rc   r8   rm   s    r   spillage_factorz$Module2ReportPreview.spillage_factorz   s8    ((T-J-J1-M-g-g003MMMr   c                      yrl   r   rm   s    r   estimated_sales_az&Module2ReportPreview.estimated_sales_a   rp   r   c                      yrl   r   rm   s    r   estimated_sales_bz&Module2ReportPreview.estimated_sales_b   rp   r   N)r   r   r   r   r   r   r	   r    r(   r.   r6   r:   rF   rM   rU   rY   r   propertyr&   ro   r   rr   rt   rv   rx   r   r   r   r^   r^   d   s    M $%< ==011//!"899"#9::?++-((%%"#9::   H3 H H   
 5   5  r   r^   N)typingr   r   r   r   app.utils.schemas_utilsr   r	   r    r(   r.   r6   r:   rF   rM   rU   rY   r^   r   r   r   <module>r|      s    ' '  / k      ;   [   [   k   K   ;   [   [  "; "r   