o
    i(                     @   s   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZmZ erhd 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 d 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 Z#dS )    )
ListObject)ListableAPIResource)StripeObject)ClassVarOptional)LiteralUnpackTYPE_CHECKING)Authorization)TransactionListParams)TransactionRetrieveParams)CreditReversal)DebitReversal)InboundTransfer)OutboundPayment)OutboundTransfer)ReceivedCredit)ReceivedDebit)TransactionEntryc                   @   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eed
< 	 e	ed< 	 eed< 	 eed< 	 eed< 	 eed  ed< 	 eed< 	 ee ed< 	 ee
 ed< 	 ed ed< 	 eed< 	 eed< 	 ed ed< 	 ed ed< 	 eed< 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e	e
ed(Zd)S )*Transactionz{
    Transactions represent changes to a [FinancialAccount's](https://stripe.com/docs/api#financial_accounts) balance.
    ztreasury.transactionOBJECT_NAMEc                   @   s*   e Zd ZU eed< 	 eed< 	 eed< dS )zTransaction.BalanceImpactcashinbound_pendingoutbound_pendingN)__name__
__module____qualname__int__annotations__ r   r   |/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/treasury/_transaction.pyBalanceImpact$   s   
 r!   c                   @   s   e Zd ZU ed ed< 	 ed ed< 	 ed ed< 	 ed ed< 	 ed	 ed
< 	 ed ed< 	 ed ed< 	 ed ed< 	 ed ed< dS )zTransaction.FlowDetailsr   credit_reversalr   debit_reversalr   inbound_transferr
   issuing_authorizationr   outbound_paymentr   outbound_transferr   received_creditr   received_debit	r"   r#   r$   r%   otherr&   r'   r(   r)   typeN)r   r   r   r   r   r   r   r   r   r    FlowDetails2   s*   
 r-   c                   @   s(   e Zd ZU ee ed< 	 ee ed< dS )zTransaction.StatusTransitions	posted_atvoid_atN)r   r   r   r   r   r   r   r   r   r    StatusTransitionsp   s
   
 r0   amountbalance_impactcreatedcurrencydescriptionr   entriesfinancial_accountflowflow_detailsr*   	flow_typeidlivemodeobject)openpostedvoidstatusstatus_transitionsparamsr   returnc                 K   s4   | j d|  |d}t|tstdt|j |S ):
        Retrieves a list of Transaction objects.
        getrC   %Expected list object from API, got %s)_static_request	class_url
isinstancer   	TypeErrorr,   r   clsrC   resultr   r   r    list   s   
zTransaction.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rE   rF   rG   NrH   )_static_request_asyncrJ   rK   r   rL   r,   r   rM   r   r   r    
list_async   s   
zTransaction.list_asyncr   c                 K   s   | |fi |}|   |S )C
        Retrieves the details of an existing Transaction.
        )refreshrN   r;   rC   instancer   r   r    retrieve   s   zTransaction.retrievec                    s$   | |fi |}|  I dH  |S )rS   N)refresh_asyncrU   r   r   r    retrieve_async   s   zTransaction.retrieve_async)r2   r9   rB   N)r   r   r   __doc__r   r   r   r   r   r!   r-   r0   r   strr   r   boolclassmethodr   rP   rR   rW   rY   _inner_class_typesr   r   r   r    r      s   
 >


r   N)$stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   typingr   r   typing_extensionsr   r   r	   stripe.issuing._authorizationr
   /stripe.params.treasury._transaction_list_paramsr   3stripe.params.treasury._transaction_retrieve_paramsr    stripe.treasury._credit_reversalr   stripe.treasury._debit_reversalr   !stripe.treasury._inbound_transferr   !stripe.treasury._outbound_paymentr   "stripe.treasury._outbound_transferr    stripe.treasury._received_creditr   stripe.treasury._received_debitr   "stripe.treasury._transaction_entryr   r   r   r   r   r    <module>   s$   