o
    Bi                      @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZmZ d dlmZmZmZmZ erFd d	lmZ G d
d ded ed ZdS )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)RequestOptions)StripeObject)ClassVarDictListOptionalcast)LiteralNotRequiredUnpackTYPE_CHECKING)Transactionc                   @   s  e Zd ZU dZdZeed  ed< G dd deZ	G dd deZ
G dd	 d	eZG d
d deZG dd deZeed< 	 eed< 	 eed< 	 ee ed< 	 ee ed< 	 eed< 	 ee	 ed< 	 eed< 	 eeef ed< 	 ed ed< 	 ed ed< 	 eed< 	 ed ed< 	 e
ed< eed  ed< 	 ed ed! d"d fd#d$Zed ed! d"d fd%d&Zed ed' d"ed  fd(d)Zed ed' d"ed  fd*d+Zeded ed, d"d fd-d.Zeded ed, d"d fd/d0Ze	e
d1Zd2S )3DebitReversalz
    You can reverse some [ReceivedDebits](https://stripe.com/docs/api#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal.
    ztreasury.debit_reversalOBJECT_NAMEc                   @      e Zd ZU ee ed< dS )zDebitReversal.LinkedFlowsissuing_disputeN)__name__
__module____qualname__r   str__annotations__ r   r   _/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/treasury/_debit_reversal.pyLinkedFlows      
 r   c                   @   r   )zDebitReversal.StatusTransitionscompleted_atN)r   r   r   r   intr   r   r   r   r   StatusTransitions"   r   r!   c                   @   s>   e Zd ZU eee  ed< 	 eeeef  ed< 	 eed< dS )DebitReversal.CreateParamsexpandmetadatareceived_debitN)r   r   r   r   r
   r   r   r	   r   r   r   r   CreateParams(   s   
 r&   c                   @   s   e Zd ZU ee ed< 	 eee  ed< 	 eed< 	 ee ed< 	 ee ed< 	 eed  ed< 	 ee ed< 	 eed	  ed
< dS )DebitReversal.ListParamsending_beforer#   financial_accountlimitr%   )lostwon
resolutionstarting_after)canceled	completed
processingstatusN)	r   r   r   r   r   r   r
   r    r   r   r   r   r   
ListParams6   s"   
 r3   c                   @   s   e Zd ZU eee  ed< dS )DebitReversal.RetrieveParamsr#   N)r   r   r   r   r
   r   r   r   r   r   r   RetrieveParamsX   s   
 r5   amountcreatedcurrencyr)   hosted_regulatory_receipt_urlidlinked_flowslivemoder$   )achcardnetworkobjectr%   )failedr1   	succeededr2   status_transitionsr   transactionparamsr"   returnc                 K   s   t d| jd|  |dS )N
        Reverses a ReceivedDebit and creates a DebitReversal object.
        r   postrE   )r   _static_request	class_urlclsrE   r   r   r   create   s   zDebitReversal.createc                    s"   t d| jd|  |dI dH S )rG   r   rH   rI   N)r   _static_request_asyncrK   rL   r   r   r   create_async   s   
zDebitReversal.create_asyncr'   c                 K   s4   | j d|  |d}t|tstdt|j |S )3
        Returns a list of DebitReversals.
        getrI   %Expected list object from API, got %s)rJ   rK   
isinstancer   	TypeErrortyper   rM   rE   resultr   r   r   list   s   
zDebitReversal.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rQ   rR   rI   NrS   )rO   rK   rT   r   rU   rV   r   rW   r   r   r   
list_async   s   
zDebitReversal.list_asyncr4   c                 K   s   | |fi |}|   |S )3
        Retrieves a DebitReversal object.
        )refreshrM   r:   rE   instancer   r   r   retrieve   s   zDebitReversal.retrievec                    s$   | |fi |}|  I dH  |S )r[   N)refresh_asyncr]   r   r   r   retrieve_async   s   zDebitReversal.retrieve_async)r;   rC   N)r   r   r   __doc__r   r   r   r   r   r   r!   r   r&   r3   r5   r    r   r   boolr	   r   classmethodr   rN   rP   r   rY   rZ   r_   ra   _inner_class_typesr   r   r   r   r      s   
 "

r   N)stripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._request_optionsr   stripe._stripe_objectr   typingr   r	   r
   r   r   typing_extensionsr   r   r   r   stripe.treasury._transactionr   r   r   r   r   r   <module>   s   
