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eed< 	 eed< 	 eed< 	 eed< 	 ee ed< 	 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,d-Zde	iZd.S )/CreditReversalz
    You can reverse some [ReceivedCredits](https://stripe.com/docs/api#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal.
    ztreasury.credit_reversalOBJECT_NAMEc                   @   s   e Zd ZU ee ed< dS )z CreditReversal.StatusTransitions	posted_atN)__name__
__module____qualname__r   int__annotations__ r   r   `/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/treasury/_credit_reversal.pyStatusTransitions   s   
 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 )CreditReversal.CreateParamsexpandmetadatareceived_creditN)r   r   r   r   r
   strr   r	   r   r   r   r   CreateParams"   s   
 r"   c                   @   sr   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 ed< 	 eed  ed< d	S )
CreditReversal.ListParamsending_beforer   financial_accountlimitr    starting_aftercanceledposted
processingstatusN)	r   r   r   r   r!   r   r
   r   r   r   r   r   r   
ListParams0   s   
 r-   c                   @   s   e Zd ZU eee  ed< dS )CreditReversal.RetrieveParamsr   N)r   r   r   r   r
   r!   r   r   r   r   r   RetrieveParamsN   s   
 r/   amountcreatedcurrencyr%   hosted_regulatory_receipt_urlidlivemoder   )achstripenetworkobjectr    r(   r,   status_transitionsr   transactionparamsr   returnc                 K   s   t d| jd|  |dS )P
        Reverses a ReceivedCredit and creates a CreditReversal object.
        r   postr<   )r   _static_request	class_urlclsr<   r   r   r   create   s   zCreditReversal.createc                    s"   t d| jd|  |dI dH S )r>   r   r?   r@   N)r   _static_request_asyncrB   rC   r   r   r   create_async   s   
zCreditReversal.create_asyncr#   c                 K   s4   | j d|  |d}t|tstdt|j |S )4
        Returns a list of CreditReversals.
        getr@   %Expected list object from API, got %s)rA   rB   
isinstancer   	TypeErrortyper   rD   r<   resultr   r   r   list   s   
zCreditReversal.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rH   rI   r@   NrJ   )rF   rB   rK   r   rL   rM   r   rN   r   r   r   
list_async   s   
zCreditReversal.list_asyncr.   c                 K   s   | |fi |}|   |S )
        Retrieves the details of an existing CreditReversal by passing the unique CreditReversal ID from either the CreditReversal creation request or CreditReversal list
        )refreshrD   r4   r<   instancer   r   r   retrieve   s   zCreditReversal.retrievec                    s$   | |fi |}|  I dH  |S )rR   N)refresh_asyncrT   r   r   r   retrieve_async   s   zCreditReversal.retrieve_asyncN)r   r   r   __doc__r   r   r   r   r   r   r   r"   r-   r/   r   r!   r   boolr	   r   classmethodr   rE   rG   r   rP   rQ   rV   rX   _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   
