Ë
    %xEi‹  ã                  óŒ   — d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d„ dej                  «      Z
 G d„ d	ej                  «      Zy
)zInvestment and reward models.é    )Úannotations)ÚDecimal)ÚMinValueValidator)Úmodelsc            	      ó„  — e Zd ZdZdZdZdZedfedfedfgZg d¢Z e	j                  d	e	j                  d
¬«      Z e	j                  dd e ed«      «      g¬«      Z e	j"                  e¬«      Z e	j                  dd¬«      Z e	j"                  «       Z e	j*                  dee¬«      Z e	j.                  «       Z e	j.                  «       Z e	j                  dd ed«      d¬«      Z e	j                  dd ed«      d¬«      Z e	j.                  d¬«      Z e	j.                  d¬«      Z G d„ d «      Zd$d!„Ze d%d"„«       Z!y#)&Ú
Investmentz4Tracks a user's investment and its reward lifecycle.ÚpendingÚactiveÚ	completedÚPendingÚActiveÚ	Completed))é   u   Tier 1: â‰¤ $100)é   u   Tier 2: â‰¤ $500)é   u   Tier 3: â‰¤ $1,000)é   u   Tier 4: â‰¤ $2,000)é   u   Tier 5: â‰¤ $5,000)é   zTier 6: > $5,000z
users.UserÚinvestments©Ú	on_deleteÚrelated_nameé   é   z10.00000000)Ú
max_digitsÚdecimal_placesÚ
validators)Úchoicesr   r   ©r   r   )Ú
max_lengthr   Údefaultz
0.00000000z:Accumulated total ROI amount generated for this investment)r   r   r!   Ú	help_texté
   r   z0.0000zDAccumulated total ROI percentage ((roi_total_amount / amount) * 100)T©Úauto_now_add)Úauto_nowc                  ód   — e Zd ZdZ ej
                  ddg¬«       ej
                  ddg¬«      gZy)úInvestment.Metar   ÚuserÚstatus©ÚfieldsÚend_dateN)Ú__name__Ú
__module__Ú__qualname__Údb_tabler   ÚIndexÚindexes© ó    úH/home/cursorai/projects/telegram-earn/backend/apps/investments/models.pyÚMetar(   G   s4   „ Ø ˆàˆF�L‰L ¨Ð 2Ô3ØˆF�L‰L ¨:Ð 6Ô7ð
‰r5   r7   c                óh   — d| j                   › d| j                  j                  › d| j                  › �S )NzInvestment #z - z - $)Úidr)   Ú
first_nameÚamount©Úselfs    r6   Ú__str__zInvestment.__str__N   s.   € Ø˜dŸg™g˜Y c¨$¯)©)×*>Ñ*>Ð)?¸tÀDÇKÁKÀ=ÐQÐQr5   c                ój  — t        t        | «      «      }|t        d«      k  rdt        d«      ddœS |t        d«      k  rdt        d«      d	dœS |t        d
«      k  rdt        d«      ddœS |t        d«      k  rdt        d«      ddœS |t        d«      k  rdt        d«      ddœS dt        d«      ddœS )z3Determine tier metadata based on investment amount.Ú100r   z1.00éx   )ÚtierÚrateÚdurationÚ500r   z1.50é‚   Ú1000r   z2.00éŒ   Ú2000r   z2.50é–   Ú5000r   z3.00é    r   z3.50é´   )r   Ústr)r;   Ú
normalizeds     r6   Úget_tier_infozInvestment.get_tier_infoQ   s´   € ô œS ›[Ó)ˆ
Øœ ›Ò'Ø¤w¨v£ÀCÑHÐHØœ ›Ò'Ø¤w¨v£ÀCÑHÐHØœ ›Ò(Ø¤w¨v£ÀCÑHÐHØœ ›Ò(Ø¤w¨v£ÀCÑHÐHØœ ›Ò(Ø¤w¨v£ÀCÑHÐHØ¤7¨6£?ÀÑDÐDr5   N©ÚreturnrN   )r;   zDecimal | float | intrR   zdict[str, Decimal | int])"r.   r/   r0   Ú__doc__ÚSTATUS_PENDINGÚSTATUS_ACTIVEÚSTATUS_COMPLETEDÚSTATUS_CHOICESÚTIER_CHOICESr   Ú
ForeignKeyÚCASCADEr)   ÚDecimalFieldr   r   r;   ÚIntegerFieldrB   Údaily_reward_rateÚduration_daysÚ	CharFieldr*   ÚDateTimeFieldÚ
start_dater-   Úroi_total_amountÚroi_total_percentÚ
created_atÚ
updated_atr7   r>   ÚstaticmethodrP   r4   r5   r6   r   r      s”  „ Ù>à€NØ€MØ"Ðà	˜Ð#Ø	˜Ð!Ø	˜;Ð'ð€Nò€Lð ˆ6×ÑØØ—.‘.Ø"ô€Dð
 !ˆV× Ñ ØØÙ%¡g¨mÓ&<Ó=Ð>ô€Fð
 ˆ6×Ñ |Ô4€DØ+˜×+Ñ+°qÈÔKÐØ'�F×'Ñ'Ó)€MàˆV×ÑØØØô€Fð
 &�×%Ñ%Ó'€JØ#ˆv×#Ñ#Ó%€Hð +�v×*Ñ*ØØÙ˜Ó%ØNô	Ðð ,˜×+Ñ+ØØÙ˜Ó!ØXô	Ðð &�×%Ñ%°4Ô8€JØ%�×%Ñ%¨tÔ4€J÷
ñ 
óRð òEó ñEr5   r   c                  ó  — e Zd ZdZ ej
                  eej                  d¬«      Z ej                  dd¬«      Z
 ej                  «       Z ej                  d¬«      Z ej                  dd¬	«      Z G d
„ d«      Zdd„Zy)ÚRewardz)Daily reward entries tied to investments.Úrewardsr   r   r   r   Tr$   )ÚnullÚblankc                  ól   — e Zd ZdZddgZ ej                  ddg¬«       ej                  ddg¬«      gZy)úReward.Metari   Ú
investmentÚreward_dater+   Údistributed_atN)r.   r/   r0   r1   Úunique_togetherr   r2   r3   r4   r5   r6   r7   rm   o   s?   „ ØˆØ'¨Ð7ˆàˆF�L‰L ¨}Ð =Ô>ØˆF�L‰L Ð0@Ð AÔBð
‰r5   r7   c                ó:   — d| j                   › d| j                  › �S )NzReward z for investment )ro   Úinvestment_idr<   s    r6   r>   zReward.__str__w   s$   € Ø˜×)Ñ)Ð*Ð*:¸4×;MÑ;MÐ:NÐOÐOr5   NrQ   )r.   r/   r0   rS   r   rY   r   rZ   rn   r[   r;   Ú	DateFieldro   r`   Úcalculated_atrp   r7   r>   r4   r5   r6   rh   rh   b   s€   „ Ù3à"�×"Ñ"ØØ—.‘.Øô€Jð
 !ˆV× Ñ ¨B¸qÔA€FØ"�&×"Ñ"Ó$€KØ(�F×(Ñ(°dÔ;€MØ)�V×)Ñ)¨t¸4Ô@€N÷
ñ 
ôPr5   rh   N)rS   Ú
__future__r   Údecimalr   Údjango.core.validatorsr   Ú	django.dbr   ÚModelr   rh   r4   r5   r6   Ú<module>r{      s;   ðÙ #å "å å 4Ý ôTE�—‘ô TEônPˆV�\‰\õ Pr5   