
    kh%                         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rd dlmZ d d	lmZ d d
lmZ d dlmZ  G d ded   ed         Zy)    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)ClassVarDictOptionalcast)LiteralUnpackTYPE_CHECKING)CreditReversalCreateParams)CreditReversalListParams)CreditReversalRetrieveParams)Transactionc                      e Zd ZU dZdZeed      ed<    G 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       Zeded   dd fd       Zeded   ded    fd       Zeded   ded    fd       Zededed   dd fd        Zededed   dd fd!       Zde	iZy")#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                       e Zd ZU ee   ed<   y) CreditReversal.StatusTransitions	posted_atN)__name__
__module____qualname__r
   int__annotations__     `/var/www/api/v1/venv_fitandmore/lib/python3.12/site-packages/stripe/treasury/_credit_reversal.pyStatusTransitionsr   $   s    C= 	r   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                 Z    t        d| j                  d| j                         |            S )P
        Reverses a ReceivedCredit and creates a CreditReversal object.
        r   postr5   )r   _static_request	class_urlclsr5   s     r    createzCreditReversal.create`   s6        
 	
r   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)r8   r   r9   r:   N)r   _static_request_asyncr<   r=   s     r    create_asynczCreditReversal.create_asyncp   sD      ++ ,  
 	
s   ,97
	9r   c                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S )4
        Returns a list of CreditReversals.
        getr:   %Expected list object from API, got %s)r;   r<   
isinstancer   	TypeErrortyper   r>   r5   results      r    listzCreditReversal.list   s]     $$MMO % 

 &*-7<((* 
 r   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)rD   rE   r:   NrF   )rA   r<   rG   r   rH   rI   r   rJ   s      r    
list_asynczCreditReversal.list_async   sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"r   c                 8     | |fi |}|j                          |S )
        Retrieves the details of an existing CreditReversal by passing the unique CreditReversal ID from either the CreditReversal creation request or CreditReversal list
        )refreshr>   r'   r5   instances       r    retrievezCreditReversal.retrieve   s$     r$V$r   c                 T   K    | |fi |}|j                          d{    |S 7 w)rP   N)refresh_asyncrR   s       r    retrieve_asynczCreditReversal.retrieve_async   s3      r$V$$$&&& 	's   (&(N)r   r   r   __doc__r   r   r   r   r   r!   r   strr
   boolr	   r   classmethodr   r?   rB   r   rL   rN   rT   rW   _inner_class_typesr   r   r    r   r      s&   
 	# '"<=> L  K L M  $,C=0 	G N 38n _%% .//  677 *)/-899 
:;
	
 
 
:;
	
 
 89	$	% & 89	$	% &  &'E F	   &'E F	  /0ABr   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    <module>rh      sZ    B 4 * = . 1 1 < < 9fC*+()fCr   