
    ɢi?                     F   d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
mZmZmZmZmZ  ej                   e      Z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'd+d,dd-d.dd/d*dd$dd0d0d1dd2Zi d3d4d5d+d6d*d7d8d9d&d:d;d<d*d=d.d>d0d?d!d@ddAddBddCd0dDd0dEd'dFd'dGd*iZdHeeef   fdIZdJedHe
fdKZdLee   dHefdMZdNedOe
dHefdPZdQedNedHee   fdRZdJedSedHefdTZ edUdVdWe	g dXY      dZedHefd[       Z y)\    N)Optional)aura_moduleModuleResult)ValuationInputDomainIntrinsicTrafficEstimateMonthlyRevenueRevenueModelNicheValuationValuationResultAffiliate / Referralg           i  333333?   d   <   gffffff?      ?u   Earn commissions referring visitors to partner products. Near-zero fulfillment — you never touch product, handle returns, or manage inventory.)labelfulfillment_cost_pctstartup_cost_lowstartup_cost_high
margin_pctmonthly_overhead_lowmonthly_overhead_hightime_to_first_dollar_daysscalabilityrisk_factordescriptionDigital Products / InfogQ?    g?      -   gq=
ףp?g?u   Sell courses, templates, ebooks, tools, or SaaS subscriptions. Fulfillment is automated — once built, each sale costs virtually nothing to deliver.SaaS / Subscription皙?iP        ?x   gffffff?u   Recurring subscription revenue. Fulfillment means server costs and support — scales well but needs ongoing development and customer success.E-commerce (Dropship)i  i@  333333?g?zSell physical products without holding inventory. Supplier ships direct, but you handle customer service, returns, and quality control. Margins are tight.E-commerce (Own Inventory)      ?g?u   Buy, store, pack, and ship physical products yourself. Highest fulfillment burden — warehousing, shipping labels, returns, damaged goods, and inventory risk.Service Business?i'  333333?u   Trade time for money — consulting, freelancing, agency work. Fulfillment is your labor or hiring others. Hard to scale without hiring.)	affiliatedigitalsaasecommerce_dropshipecommerce_inventoryservices.com      ?z.netz.orgz.ioffffff?z.coz.aig?z.appz.devz.bizz.usz.infoz.xyzz.onlinez.storez.shopz.techz.mez.tvreturnc                 B   | syt        |       j                  dd      j                  dd      j                         } t        j                  d|       }t        |      dk\  rt        |d         t        |d         fS t        |      dk(  rt        |d         }||d	z  fS y)
N)r!   i N  , $z(\d+)   r         )strreplacestriprefindalllenint)band_strmatchvs      8/sites/domain-asset-master/aura_core/valuation/engine.py_parse_valuation_bandrL   {   s    8}$$S"-55c2>DDFHJJx*E
5zQ58}c%(m++	UqaM!a%x    domainc                 H   | j                  dd      }|r|d   n| }t        |      dkD  rd|d   z   nd}t        |j                  dd            }t        j	                  |d      }|dk  rd	}n"|d
k  rd}n|dk  rd}n|dk  rd}n
|dk  rd}nd}d|v }|rdnd	}t        d |D              }	|	rdnd	}
| xr
 |	 xr |dk  }|rdnd	}||z  |z  |
z  |z  }t        d	|      }d}d}|||z
  |dz  z  z   }t        | ||||t        |d      ||	t        |d      t        |      
      S )N.r?   r   r6   -r<   r   r@   r7      r      g?   r.      r/   g333333?r*   c              3   <   K   | ]  }|j                           y wN)isdigit).0cs     rK   	<genexpr>z+compute_domain_intrinsic.<locals>.<genexpr>   s     0aaiik0s   r'   
   ?r    iI        @r>   )
domain_name	name_parttldlengthtld_multiplierlength_scorehas_hyphenshas_numbers	raw_scoredomain_only_value)	rsplitrF   rB   TLD_MULTIPLIERSgetanyminr   round)rN   partsnamera   rb   tld_multrd   re   hyphen_penaltyrf   number_penaltyis_dictionary_likedictionary_bonusrg   
base_floorbase_ceilingrh   s                    rK   compute_domain_intrinsicrx      sw   MM#q!E58&DJN#a.Cc2&'F""3-H{	1	1	2	2+K'SSN0400K(TcN(M_M20scx'.8>IL\\IC#IJL"lZ&?IQTDT%UU<+	1% 12 rM   monetization_strc                     | sy| j                         }d|v sd|v ryd|v sd|v sd|v ryd|v sd|v sd|v sd	|v sd
|v sd|v ryd|v sd|v sd|v sd|v ryd|v sd|v sd|v sd|v ryy)Nr0   r2   subscriptionreferral
commissionr1   infocourseebooktemplateproductz
e-commerce	ecommerceshopstorer3   serviceconsultagency	freelancer5   )lower)ry   ms     rK   classify_monetizationr      s     A{n)a:?la.?A~1AAWX\eij\jqK1,!w!|#A~a8q=K1<LrM   
niche_datadomain_scorec           	         t        | j                  dd            }t        j                  d|      D cg c]#  }|j	                         s|j	                         % }}t        dt        |            }| j                  dg       }t        |t              rt        |      nd}| j                  dd      }|d	k(  rd
}	n
|dk(  rd}	nd}	|j                  }
|j                  }d}t        dd|dz
  dz  z         }t        dd|dz  z         }||z  |	z  |
z  |z  dz  }||z  |z  |	z  |
z  |z  dz  }t        dt        |            }t        |dz  t        |            }t        |||	||||z   dz        S c c}w )Ntarget_audiencer<   z[,;&]r?   affiliate_programsr   time_to_revenuemediumfastr]   slowr8   r7   i   g      @r   r^   r&   r*   g      @r   r>   )audience_segmentsaffiliate_countmarket_heatmonthly_visitors_lowmonthly_visitors_highmonthly_visitors_mid)rA   rk   rD   splitrC   maxrF   
isinstancelistrc   rd   rm   rn   r   )r   r   audiencesr   num_segments
affiliatesnum_affiliatestime_to_revr   	tld_trustlength_factorbase_monthly_visitorssegment_multaffiliate_multmonthly_lowmonthly_highs                    rK   estimate_monthly_trafficr      s   :>>"3R89H,.HHXx,HVqAGGIVVq#/01L 4b9J(2:t(DS_!N..!2H=Kf		++I --MsC<!#3t";;<LcNS$889N',6DyPS``cffK(<7.H;VYbberruxxLc5-.K{Ql(;<L&&(*)L8Q> 9 Ws   E0
E0trafficc                 p   g }t        |j                  dd            }|j                  dd      }ddg}|dk(  r|j                  d       |r|j                  d       n|d	v r|j                  d
       ||vr|j                  |       | j                  }| j                  }|D ]  }t
        |   }	||k(  }
|dk(  r
d}d}||z  }nY|dk(  r
d}d}||z  }nJ|dk(  r
d}d}||z  }n;|d
k(  rd}d}||z  |	d   z  }n&|dk(  rd}d}||z  |	d   z  }n|dk(  r
d}d}||z  }nd}||z  }||z  }||	d   z  }||	d   z  }||z
  |	d   z
  }||z
  |	d   z
  }||z   dz  }||z   dz  }t        |t        d|      z  dz        }|dz  }|dz  }|d v rd!}n|dk(  rd"}n	|d	v rd#}nd$}t        t        d%|      dz  |z        }t        t        d%|      dz  |z        }|j                  t        ||	d&   |
|	d'   t        |	d   dz        |	d(   |	d)   d*|	d+   t        |	d,   d-z  d      t        |	d.   d-z  d      t        t        |      t        |      t        |      t        |      |	d   |	d   t        |      t        |      |/	      t        |      t        |      d*||d*| d01               |j                  d2 3       |S )4Nmonetization_modelr<   requires_inventoryFr0   r1   r2   r4   )r3   r4   r3   g{Gz?   gQ?/   gMb?   A   r   g?K   r5   g{Gzt?r    r,   r   r   r   r>   r?   r   rT   )r0   r1   $   0         r   r   r   r   r   lowhighr   r   r\   r   )		gross_low
gross_highfulfillment_cost_lowfulfillment_cost_highoverhead_lowoverhead_highnet_profit_lownet_profit_highprofit_margin_pctzx monthly net)	model_keyr   is_primary_fitr   r   startup_costr   scalability_score
risk_scoremonthly_revenue
annual_netdeveloped_valuevaluation_multiplec                 J    | j                    | j                  j                   fS rW   )r   r   r   )xs    rK   <lambda>z*compute_revenue_by_model.<locals>.<lambda>]  s#    A$4$4 4q7H7H7X7X6XY rM   )key)r   rk   appendr   r   BUSINESS_MODELSrn   r   r
   r	   sort) r   r   resultsprimary_modelr   models_to_evalvisitors_lowvisitors_highr   model
is_primary	conv_rateavg_commissionrevenue_per_visitor	avg_priceavg_mrr	avg_orderavg_engagementr   r   fulfillment_lowfulfillment_highnet_lownet_high	avg_grossavg_netr   annual_net_lowannual_net_highvaluation_multdeveloped_value_lowdeveloped_value_highs                                    rK   compute_revenue_by_modelr      s   G)*..9Mr*RSM#(<eD!9-Nf%34	G	G23N*m,//L11M# S		*-/
#IN"+n"<)#II"+i"7& IG"+g"5..II"+i"7%:M"M//II"+i"7%:M"M*$I N"+n"<"& #66	"%88
#e,B&CC%.D(EEo-6L0MM 0059P3QQ+q0	X%*!'C9,="="CD 2"R-00N& NGGNN#C>$:R$?.$PQ$SO%<r%AN%RS|.%m,!&u-C'Ds'J!K!&'9!:EJ]D^_&+,G&H#E-$82$=qAU=1B6:*	* ,%*?%;&+,<&="#9:#$;<$W~ %h"3
  %^4eO>TU$7AUV"0!1?/
 	wSj LLYLZNrM   analysisc                 |   t        |       }|j                  dg       }g }d}d}|D ]
  }t        |j                  d            \  }}	t        ||      }
t	        |
|      }|r|d   nd }t        d |D        d      }t        d |D        d      }||kD  r|}||kD  r|}|j                  t        |j                  dd      |j                  d	d
      |j                  dd      ||	d|
||r=|r|j                  nd|r|j                  j                  nd|r|j                  d   nddnd               dgdgdgddgdgd}t        | ||j                  ||t        |      ||t        j!                         D ci c]1  \  }}||d   t#        |d   dz        t#        |d   dz        |d   d3 c}}	      S c c}}w ) Nnichesr   valuation_bandc              3   :   K   | ]  }|j                   d      yw)r   N)r   rY   r   s     rK   r[   z!valuate_domain.<locals>.<genexpr>p  s     #V!A$5$5f$=#Vs   )defaultc              3   H   K   | ]  }|j                   j                    y wrW   )r   r   r   s     rK   r[   z!valuate_domain.<locals>.<genexpr>q  s     !\!"3"3"C"C!\s    "rp   Unknownr   r<   r   Fr   zN/Ar   )r   net_monthly_highr   )
niche_namer   r   ai_valuation_bandtraffic_estimaterevenue_by_model
best_modelr   r   r%   r)   r-   r+   )zero_fulfillment	near_zeromoderateheavymaximumr   r   r   r   r   )r   r   r   r   )	rN   domain_intrinsicrh   best_developed_valuebest_monthly_netniches_evaluatedniche_valuationsfulfillment_guidebusiness_models)rx   rk   rL   r   r   r   r   r   r   r   r   r   r   rh   rF   r   itemsrn   )rN   r   r   r   r	  best_developed_highbest_monthly_highnicheval_lowval_highr   revenue_modelsr   niche_developed_highniche_monthly_highfulfillment_summarykrJ   s                     rK   valuate_domainr  a  s   +F3L\\(B'F 1%))<L2MN*5,?1'5A*8^A&d
"#V~#V`ab !\^!\fgh"55"6 11 2yy3$yy)=rB$yy)=uE&-x@$+
  .8))UR\J$>$>$N$NbcNX
(B(B6(J^_ "&!
 	< 44/0*+)+=>01 %&880*-.)- (--/
 1 7(-a0F.G#.M(N#AlOc$9: /	 
 
s   96F8	valuationz1.0.0u   Domain valuation engine — computes intrinsic domain value, traffic estimates, revenue projections across 6 business models, and developed-value ranges)r  rN   revenue)rp   versionr   input_modeltagsconfigc                     | j                  dd      }| j                  di       }t        ||      }t        |d      r|j                         n|j                  }t        d|||j                  d      S )NrN   zexample.comr   
model_dumpT)rN   r  )okoutputmetadata)rk   r  hasattrr  __dict__r   r  )r  rN   r   resultr!  s        rK   run_valuationr&    sn     ZZ-0Fzz*b)HFH-F$+FL$AV vF"8O8OP rM   )!mathloggingrD   typingr   aura_core.module_contractr   r   aura_core.typesr   r   r   r	   r
   r   r   	getLogger__name__loggerr   rj   tuplerG   rL   rA   rx   r   dictr   r   r   r  r&   rM   rK   <module>r2     s     	  ?   
		8	$ ( #! "!$%' j + $! "!$%' o ' $ " #!%%( h ) $ ! #!$%' t . $ " #!%%' y $ $" #!%%' bEOb
C
D D 
4	
 
4 
4 D D D 
4 T D t d T  T!" 
4#$ 
4%,
uS#X 
0S 0_ 0fHSM c "% %_ %Q` %Pjo j4 jDQ]L^ jZ?3 ?$ ?? ?D 	 k	+	$ 	< 		rM   