
    ]8i
                    V    d Z ddlmZ ddlmZ ddlmZ  G d dej                        Zy)zHTransaction model capturing deposits, withdrawals, rewards, commissions.    )annotations)Decimal)modelsc                  |   e Zd ZdZdZdZdZdZdZedfedfed	fed
fedfgZ	dZ
dZdZdZdZe
dfedfedfedfedfgZ ej"                  dej$                  d      Z ej(                  de	      Z ej,                  dd      Z ej(                  de      Z ej,                  dd      Z ej,                  dd      Z ej(                  ddddd       Z ej(                  d!ddd"      Z ej:                  ed#      Z ej@                  d$      Z! ej@                  d%      Z" G d& d'      Z#d,d(Z$d,d)Z%d-d*Z&y+).Transactionz:Records all wallet-impacting events with indexed metadata.deposit
withdrawal
investmentreward
commissionDeposit
Withdrawal
InvestmentReward
Commissionpending
processing	completed	cancelled	forfeitedPending
Processing	Completed	Cancelled	Forfeitedz
users.Usertransactions)	on_deleterelated_name   )
max_lengthchoices   )
max_digitsdecimal_places2   Tz6Blockchain for deposits/withdrawals (e.g., tron, bnb).)r    nullblankdb_index	help_text   )r    r&   r'   r(   )defaultr'   )auto_now_add)auto_nowc                      e Zd ZdZ ej
                  ddg       ej
                  ddg       ej
                  ddg      gZy)	Transaction.Metar   usertransaction_type)fieldsstatus
created_at
blockchainN)__name__
__module____qualname__db_tabler   Indexindexes     I/home/cursorai/projects/telegram-earn/backend/apps/transactions/models.pyMetar/   D   sI    !FLL); <=FLL< 89FLL!3\ BC
r=   r?   c                f    | j                    d| j                  j                   d| j                   S )Nz - z - $)r1   r0   
first_nameamountselfs    r>   __str__zTransaction.__str__L   s/    ''(DII,@,@+Adkk]SSr=   c                V    | j                   r| j                   j                  dd      S dS )z-Return explorer link stored in JSON metadata.explorer_link )datagetrC   s    r>   get_explorer_linkzTransaction.get_explorer_linkO   s"    59YYtyy}}_b1FBFr=   c                H    | j                   si | _         || j                   d<   y)z#Set explorer link in JSON metadata.rG   N)rI   )rD   links     r>   set_explorer_linkzTransaction.set_explorer_linkS   s    yyDI%)		/"r=   N)returnstr)rM   rP   rO   None)'r6   r7   r8   __doc__TYPE_DEPOSITTYPE_WITHDRAWALTYPE_INVESTMENTTYPE_REWARDTYPE_COMMISSIONTYPE_CHOICESSTATUS_PENDINGSTATUS_PROCESSINGSTATUS_COMPLETEDSTATUS_CANCELLEDSTATUS_FORFEITEDSTATUS_CHOICESr   
ForeignKeyCASCADEr0   	CharFieldr1   DecimalFieldrB   r3   balance_beforebalance_afterr5   transaction_hash	JSONFielddictrI   DateTimeFieldr4   
updated_atr?   rE   rK   rN   r<   r=   r>   r   r   
   s   DL"O"OK"O	y!	,'	,'	h	,'L N$"""	#	L)	;'	;'	;'N 6..#D
 (v''2|L V  BqAFV^DF(V((BqIN'F''2aHM!!!JJ (v''	 6D5D%%%48J%%%t4J
 
TG*r=   r   N)	rR   
__future__r   decimalr   	django.dbr   Modelr   r<   r=   r>   <module>rn      s#    N "  M*&,, M*r=   