a
    !f0                     @   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	m
Z
mZ d dlmZmZmZmZmZ erd 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 )    )ListableAPIResource)
ListObject)RequestOptions)StripeObject)ClassVarListOptional)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)Authorization)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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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d0ee ee ee ed' ed  d(d)d*Zeeed+ d d,d-d.Ze	e
ed/Zd&S )1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.BalanceImpactZcashZinbound_pendingZoutbound_pendingN)__name__
__module____qualname__int__annotations__ r   r   j/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/treasury/transaction.pyBalanceImpact)   s   
r    c                   @   sz   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   FlowDetails7   s   
r,   c                   @   s&   e Zd ZU ee ed< ee ed< dS )zTransaction.StatusTransitions	posted_atZvoid_atN)r   r   r   r   r   r   r   r   r   r   StatusTransitionso   s   
r.   c                   @   sv   e Zd ZU ed ed< ed ed< ed ed< eed< ed ed	< ed
 ed< ed ed< ed ed< ed ed< dS )Transaction.ListParamsz!Transaction.ListParamsCreated|intcreatedstrZending_before	List[str]expandfinancial_accountr   limitzLiteral['created', 'posted_at']Zorder_byZstarting_afterz!Literal['open', 'posted', 'void']status'Transaction.ListParamsStatusTransitionsstatus_transitionsN)r   r   r   r
   r   r1   r   r   r   r   
ListParamsy   s   
r9   c                   @   s   e Zd ZU ed ed< dS )r7   z3Transaction.ListParamsStatusTransitionsPostedAt|intr-   Nr   r   r   r
   r   r   r   r   r   ListParamsStatusTransitions   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< dS )z/Transaction.ListParamsStatusTransitionsPostedAtr   gtgteltlteNr:   r   r   r   r   #ListParamsStatusTransitionsPostedAt   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< dS )zTransaction.ListParamsCreatedr   r<   r=   r>   r?   Nr:   r   r   r   r   ListParamsCreated   s
   
rA   c                   @   s   e Zd ZU ed ed< dS )Transaction.RetrieveParamsr2   r3   Nr:   r   r   r   r   RetrieveParams   s   
rC   amountbalance_impactr0   currencydescriptionr   entriesr4   Zflowflow_detailsr)   Z	flow_typeidZlivemodeobject)openZpostedvoidr6   r8   Nr/   )api_keystripe_versionstripe_accountparamsreturnc                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )z:
        Retrieves a list of Transaction objects.
        get)rN   rO   rP   rQ   z%Expected list object from API, got %s)Z_static_requestZ	class_url
isinstancer   	TypeErrorr+   r   )clsrN   rO   rP   rQ   resultr   r   r   list  s    
zTransaction.listrB   )rJ   rQ   rR   c                 K   s   | |fi |}|   |S )zC
        Retrieves the details of an existing Transaction.
        )refresh)rV   rJ   rQ   instancer   r   r   retrieve2  s    zTransaction.retrieve)rE   rI   r8   )NNN)r   r   r   __doc__r   r   r	   r   r   r    r,   r.   r   r9   r   r;   r@   rA   rC   r   r1   r   r   boolclassmethodr   rX   r[   Z_inner_class_typesr   r   r   r   r       sf   
8
%   r   N)%Zstripe.api_resources.abstractr   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr   typingr   r   r   Ztyping_extensionsr	   r
   r   r   r   Z*stripe.api_resources.issuing.authorizationr   Z-stripe.api_resources.treasury.credit_reversalr   Z,stripe.api_resources.treasury.debit_reversalr   Z.stripe.api_resources.treasury.inbound_transferr   Z.stripe.api_resources.treasury.outbound_paymentr   Z/stripe.api_resources.treasury.outbound_transferr   Z-stripe.api_resources.treasury.received_creditr   Z,stripe.api_resources.treasury.received_debitr   Z/stripe.api_resources.treasury.transaction_entryr   r   r   r   r   r   <module>   s    