Ë
    çå8ix  ã                  óÈ   — d Z ddlmZ ddlmZ  G d„ dej
                  «      Z G d„ dej
                  «      Z G d„ d	ej
                  «      Z G d
„ dej
                  «      Z	y)zCPayment gateway contracts for deposits, withdrawals, and callbacks.é    )Úannotations)Úmodelsc                  óô  — e Zd ZdZdZdZdZedfedfedfgZ ej                  dej                  d	¬
«      Z ej                  dd¬«      Z ej                  dd¬«      Z ej                  dd¬«      Z ej                  dee¬«      Z ej                  ddd¬«      Z ej$                  dd¬«      Z ej(                  ed¬«      Z ej$                  d¬«      Z ej$                  d¬«      Z G d„ d«      Zdd„Zy) ÚPaymentAddresszCReusable deposit address allocated to a user on a specific network.ÚactiveÚrevokedÚexpiredÚActiveÚRevokedÚExpiredú
users.UserÚpayment_addresses©Ú	on_deleteÚrelated_nameé2   T©Ú
max_lengthÚdb_indexé   ÚUSDT©r   Údefaultéÿ   )r   Úunique©r   Úchoicesr   éd   z=Optional label or derivation path reference from the gateway.)r   ÚblankÚ	help_text©Únullr   ©r   r   ©Ú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)úPaymentAddress.Metar   ÚuserÚ
blockchain©ÚfieldsÚstatusÚ
expires_atN©Ú__name__Ú
__module__Ú__qualname__Údb_tabler   ÚIndexÚindexes© ó    úE/home/cursorai/projects/telegram-earn/backend/apps/payments/models.pyÚMetar(   (   s4   „ Ø&ˆàˆF�L‰L ¨Ð 6Ô7ØˆF�L‰L ¨<Ð 8Ô9ð
‰r7   r9   c                óR   — | j                   › d| j                  › d| j                  › �S )NÚ:)r*   ÚassetÚaddress©Úselfs    r8   Ú__str__zPaymentAddress.__str__/   s&   € Ø—/‘/Ð" ! D§J¡J <¨q°·±°Ð?Ð?r7   N©ÚreturnÚstr)r0   r1   r2   Ú__doc__ÚSTATUS_ACTIVEÚSTATUS_REVOKEDÚSTATUS_EXPIREDÚSTATUS_CHOICESr   Ú
ForeignKeyÚCASCADEr)   Ú	CharFieldr*   r<   r=   r-   ÚlabelÚDateTimeFieldr.   Ú	JSONFieldÚdictÚmetadataÚ
created_atÚ
updated_atr9   r@   r6   r7   r8   r   r      s!  „ ÙMà€MØ€NØ€Nà	˜Ð!Ø	˜Ð#Ø	˜Ð#ð€Nð ˆ6×ÑØØ—.‘.Ø(ô€Dð
 "�×!Ñ!¨R¸$Ô?€JØˆF×Ñ¨°FÔ;€EØˆf×Ñ¨#°dÔ;€GØˆV×Ñ¨°^È]Ô[€FØˆF×ÑØØØQô€Eð
 &�×%Ñ%¨4°tÔ<€JØˆv×Ñ¨°DÔ9€Hà%�×%Ñ%°4Ô8€JØ%�×%Ñ%¨tÔ4€J÷
ñ 
ô@r7   r   c                  ó¦  — e 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gZ e	j                  d
e	j                  d¬«      Z e	j                  ee	j                  d¬«      Z e	j                   ddde	j"                  dd¬«      Z e	j&                  dd¬«      Z e	j&                  dd¬«      Z e	j,                  dd¬«      Z e	j&                  dd¬«      Z e	j2                  d¬«      Z e	j&                  dee¬«      Z e	j8                  d¬«      Z e	j8                  dd¬«      Z e	j>                  e d¬«      Z! e	j>                  e d¬«      Z" G d „ d!«      Z#d$d"„Z$y#)%ÚDepositzCInbound payment detected by the gateway; links to on-chain tx hash.ÚpendingÚ	confirmedÚfailedÚ	duplicateÚPendingÚ	ConfirmedÚFailedÚ	Duplicater   Údepositsr   útransactions.TransactionTÚdepositz:Corresponding wallet transaction once balance is credited.©r"   r   r   r   r    r   r   r   r   r   é   ©Ú
max_digitsÚdecimal_placesr   r   )r   r   r$   r!   r#   c                  ó’   — e Zd ZdZ ej
                  ddg¬«       ej
                  ddg¬«      gZ ej                  ddgd¬«      gZy	)
úDeposit.MetaÚpayment_depositsr)   r-   r+   Útransaction_hashr*   Úunique_payment_deposit_tx)r,   ÚnameN)	r0   r1   r2   r3   r   r4   r5   ÚUniqueConstraintÚconstraintsr6   r7   r8   r9   rf   `   sY   „ Ø%ˆàˆF�L‰L ¨Ð 2Ô3ØˆF�L‰LÐ!3°\Ð BÔCð
ˆð
 $ˆF×#Ñ#Ø*¨LÐ9Ø0ôð
‰r7   r9   c                óT   — d| j                   › d| j                  › d| j                  › �S )NzDeposit Ú ©r*   r<   Úamountr>   s    r8   r@   zDeposit.__str__m   s(   € Ø˜$Ÿ/™/Ð*¨!¨D¯J©J¨<°q¸¿¹¸ÐFÐFr7   NrA   )%r0   r1   r2   rD   ÚSTATUS_PENDINGÚSTATUS_CONFIRMEDÚSTATUS_FAILEDÚSTATUS_DUPLICATErH   r   rI   rJ   r)   r   ÚPROTECTr=   ÚOneToOneFieldÚSET_NULLÚtransactionrK   r*   r<   ÚDecimalFieldrp   rh   ÚPositiveIntegerFieldÚconfirmationsr-   rM   Údetected_atÚconfirmed_atrN   rO   Úraw_payloadrP   r9   r@   r6   r7   r8   rT   rT   3   s‡  „ ÙMà€NØ"ÐØ€MØ"Ðà	˜Ð#Ø	˜;Ð'Ø	˜Ð!Ø	˜;Ð'ð	€Nð ˆ6×ÑØØ—.‘.Øô€Dð
  ˆf×ÑØØ—.‘.Øô€Gð
 '�&×&Ñ&Ø"ØØØ—/‘/ØØNô€Kð "�×!Ñ!¨R¸$Ô?€JØˆF×Ñ¨°FÔ;€EØ ˆV× Ñ ¨B¸qÔA€FØ'�v×'Ñ'°3ÀÔFÐØ/�F×/Ñ/¸Ô:€MØˆV×Ñ¨°^È^Ô\€FØ&�&×&Ñ&°DÔ9€KØ'�6×'Ñ'¨T¸Ô>€Là"�&×"Ñ"¨4°tÔ<€KØˆv×Ñ¨°DÔ9€H÷
ñ 
ôGr7   rT   c                  óz  — 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	 e
j                  de
j                  d¬«      Z e
j                  ddde
j                  dd¬«      Z e
j"                  dd¬«      Z e
j"                  dd¬«      Z e
j(                  dd¬«      Z e
j"                  d¬«      Z e
j"                  de	e¬«      Z e
j"                  dddd¬«      Z e
j"                  dddd ¬«      Z e
j4                  d¬!«      Z e
j4                  dd¬"«      Z e
j:                  ed¬#«      Z G d$„ d%«      Z d(d&„Z!y'))ÚWithdrawalRequestz/Outbound payout request to the payment gateway.Ú	requestedÚ
processingÚsentrW   Ú	cancelledÚ	RequestedÚ
ProcessingÚSentr[   Ú	Cancelledr   Úwithdrawal_requestsr   r^   TÚwithdrawal_requestz2Wallet transaction when the withdrawal is debited.r`   r   r   r   r   r   ra   rb   r   )r   r   z:External reference or request id from the payment gateway.)r   r   r   r    zOn-chain hash when available.r$   r!   r#   c                  óŠ   — e Zd ZdZ ej
                  ddg¬«       ej
                  dg¬«       ej
                  ddg¬«      gZy)	úWithdrawalRequest.MetaÚpayment_withdrawalsr)   r-   r+   Úgateway_referencerh   r*   Nr/   r6   r7   r8   r9   rŒ   ¦   sG   „ Ø(ˆàˆF�L‰L ¨Ð 2Ô3ØˆF�L‰LÐ!4Ð 5Ô6ØˆF�L‰LÐ!3°\Ð BÔCð
‰r7   r9   c                óT   — d| j                   › d| j                  › d| j                  › �S )NzWithdrawal rn   ro   r>   s    r8   r@   zWithdrawalRequest.__str__®   s(   € Ø˜TŸ_™_Ð-¨Q¨t¯z©z¨l¸!¸D¿K¹K¸=ÐIÐIr7   NrA   )"r0   r1   r2   rD   ÚSTATUS_REQUESTEDÚSTATUS_PROCESSINGÚSTATUS_SENTrs   ÚSTATUS_CANCELLEDrH   r   rI   rJ   r)   rv   rw   rx   rK   r*   r<   ry   rp   Údestination_addressr-   rŽ   rh   rM   Úrequested_atÚprocessed_atrN   rO   rP   r9   r@   r6   r7   r8   r€   r€   q   s�  „ Ù9à"ÐØ$ÐØ€KØ€MØ"Ðà	˜;Ð'Ø	˜LÐ)Ø	�fÐØ	˜Ð!Ø	˜;Ð'ð€Nð ˆ6×ÑØØ—.‘.Ø*ô€Dð
 '�&×&Ñ&Ø"ØØØ—/‘/Ø)ØFô€Kð "�×!Ñ!¨R¸$Ô?€JØˆF×Ñ¨°FÔ;€EØ ˆV× Ñ ¨B¸qÔA€FØ*˜&×*Ñ*°cÔ:ÐØˆV×Ñ¨°^ÐM]Ô^€Fà(˜×(Ñ(ØØØØNô	Ðð (�v×'Ñ'ØØØØ1ô	Ðð (�6×'Ñ'°TÔ:€LØ'�6×'Ñ'¨T¸Ô>€Làˆv×Ñ¨°DÔ9€H÷
ñ 
ôJr7   r€   c                  óè  — e Zd ZdZdZdZdZedfedfedfgZ ej                  dd	¬
«      Z
 ej                  ed	d	ej                  d¬«      Z ej                  ed	d	ej                  d¬«      Z ej                  dee¬«      Z ej$                  d	¬«      Z ej(                  ed	¬«      Z ej(                  ed	¬«      Z ej0                  d	¬«      Z ej0                  d	d	¬«      Z G d„ d«      Zdd„Zy)ÚGatewayCallbackLogz>Audit log of inbound webhook callbacks to aid troubleshooting.rU   Ú	processedÚerrorrY   Ú	ProcessedÚErrorr   Tr   Úcallback_logs)r"   r   r   r   r   r   )r   r#   r$   r!   c                  ób   — e Zd ZdZ ej
                  ddg¬«       ej
                  dg¬«      gZy)úGatewayCallbackLog.MetaÚpayment_callback_logsÚ
event_typer-   r+   Úreceived_atNr/   r6   r7   r8   r9   rŸ   Õ   s1   „ Ø*ˆàˆF�L‰L ¨xÐ 8Ô9ØˆF�L‰L  Ô0ð
‰r7   r9   c                ó<   — d| j                   › d| j                  › d�S )Nz	Callback z [Ú])r¡   r-   r>   s    r8   r@   zGatewayCallbackLog.__str__Ü   s    € Ø˜4Ÿ?™?Ð+¨2¨d¯k©k¨]¸!Ð<Ð<r7   NrA   )r0   r1   r2   rD   rq   ÚSTATUS_PROCESSEDÚSTATUS_ERRORrH   r   rK   r¡   rI   rT   rw   Úrelated_depositr€   Úrelated_withdrawalr-   Ú	TextFieldÚerror_messagerN   rO   ÚpayloadÚheadersrM   r¢   r–   r9   r@   r6   r7   r8   r˜   r˜   ²   s  „ ÙHà€NØ"ÐØ€Là	˜Ð#Ø	˜;Ð'Ø	�wÐð€Nð "�×!Ñ!¨S¸4Ô@€JØ'�f×'Ñ'ØØØØ—/‘/Ø$ô€Oð +˜×*Ñ*ØØØØ—/‘/Ø$ôÐð ˆV×Ñ¨°^È^Ô\€FØ$�F×$Ñ$¨4Ô0€Màˆf×Ñ t°4Ô8€GØˆf×Ñ t°4Ô8€GØ&�&×&Ñ&°DÔ9€KØ'�6×'Ñ'¨T¸Ô>€L÷
ñ 
ô=r7   r˜   N)
rD   Ú
__future__r   Ú	django.dbr   ÚModelr   rT   r€   r˜   r6   r7   r8   Ú<module>r°      sW   ðÙ Iå "å ô(@�V—\‘\ô (@ôV;Gˆf�l‰lô ;Gô|>J˜Ÿ™ô >JôB+=˜Ÿ™õ +=r7   