o
    i%                     @   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mZmZmZ d dlmZmZmZ erNd dlmZ d d	lmZ d d
lmZ d dlmZ G dd ded ed ZdS )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)ClassVarDictOptionalcast)LiteralUnpackTYPE_CHECKING)CreditReversalCreateParams)CreditReversalListParams)CreditReversalRetrieveParams)Transactionc                   @   s  e Zd ZU dZdZeed  ed< 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/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/treasury/_credit_reversal.pyStatusTransitions$   s   
 r   amountcreatedcurrencyfinancial_accounthosted_regulatory_receipt_urlidlivemodemetadata)achstripenetworkobjectreceived_credit)canceledposted
processingstatusstatus_transitionsr   transactionparamsr   returnc                 K   s   t d| jd|  |dS )P
        Reverses a ReceivedCredit and creates a CreditReversal object.
        r   postr0   )r
   _static_request	class_urlclsr0   r   r   r   create`   s   zCreditReversal.createc                    s"   t d| jd|  |dI dH S )r2   r   r3   r4   N)r
   _static_request_asyncr6   r7   r   r   r   create_asyncp   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.
        getr4   %Expected list object from API, got %s)r5   r6   
isinstancer   	TypeErrortyper   r8   r0   resultr   r   r   list   s   
zCreditReversal.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r<   r=   r4   Nr>   )r:   r6   r?   r   r@   rA   r   rB   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r8   r"   r0   instancer   r   r   retrieve   s   zCreditReversal.retrievec                    s$   | |fi |}|  I dH  |S )rF   N)refresh_asyncrH   r   r   r   retrieve_async   s   zCreditReversal.retrieve_asyncN)r   r   r   __doc__r   r   r   r   r   r   r   strr	   boolr   r   classmethodr   r9   r;   r   rD   rE   rJ   rL   _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._stripe_objectr   typingr   r   r	   r
   typing_extensionsr   r   r   5stripe.params.treasury._credit_reversal_create_paramsr   3stripe.params.treasury._credit_reversal_list_paramsr   7stripe.params.treasury._credit_reversal_retrieve_paramsr   stripe.treasury._transactionr   r   r   r   r   r   <module>   s    
