a
    !fi                     @   s   d dl mZ d dlmZmZ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mZ d d	lmZmZmZmZmZmZ erd d
lmZ G dd ded ed Z e e j!_"dS )    )util)APIResourceTestHelpersCreateableAPIResourceListableAPIResource)ExpandableField)
ListObject)RequestOptions)StripeObject)class_method_variant)ClassVarDictListOptionalcastoverload)LiteralNotRequiredType	TypedDict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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 ed < ee	 ed!< eed"< ee ed#< eed$< e
ed%< eed&< eeef ed'< ed ed(< eed)< ee ed*< ee ed+< eed,< ed- ed.< eed/< eed0  ed1< edNeee ee ee ed3 d d4d5d6Ze e!dOeee ee ee ed3 d d4d7d8Z"e dPee ed3 d d9d:d8Z"e#d;dQee ed3 d d9d<d8Z"edRee ee ee ee ed= d d>d?d@Z$edSee ee ee edA e%d  dBdCdDZ&eeedE d dFdGdHZ'G dIdJ dJe(d  Z)e*dKdL Z+e	e
eedMZ,d2S )TInboundTransfera+  
    Use [InboundTransfers](https://stripe.com/docs/treasury/moving-money/financial-accounts/into/inbound-transfers) to add funds to your [FinancialAccount](https://stripe.com/docs/api#financial_accounts) via a PaymentMethod that is owned by you. The funds will be transferred via an ACH debit.
    ztreasury.inbound_transferOBJECT_NAMEc                   @   s   e Zd ZU ed ed< dS )zInboundTransfer.FailureDetails)Zaccount_closedZaccount_frozenZbank_account_restrictedZbank_ownership_changedZdebit_not_authorizedZ incorrect_account_holder_addressZincorrect_account_holder_nameZincorrect_account_holder_tax_idZinsufficient_fundsZinvalid_account_numberZinvalid_currencyZ
no_accountothercodeN)__name__
__module____qualname__r   __annotations__ r    r    o/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/treasury/inbound_transfer.pyFailureDetails(   s   
r"   c                   @   s   e Zd ZU ee ed< dS )zInboundTransfer.LinkedFlowsZreceived_debitNr   r   r   r   strr   r    r    r    r!   LinkedFlows<   s   
r%   c                   @   sX   e Zd ZU G dd deZG dd deZeed< ed ed< ee ed< eedZ	d	S )
z*InboundTransfer.OriginPaymentMethodDetailsc                   @   sF   e Zd ZU G dd deZeed< ee ed< ee ed< deiZdS )z9InboundTransfer.OriginPaymentMethodDetails.BillingDetailsc                   @   sV   e Zd ZU ee ed< ee ed< ee ed< ee ed< ee ed< ee ed< dS )zAInboundTransfer.OriginPaymentMethodDetails.BillingDetails.AddressZcityZcountryline1line2Zpostal_codestateNr#   r    r    r    r!   AddressD   s   
r)   addressemailnameN)	r   r   r   r	   r)   r   r   r$   _inner_class_typesr    r    r    r!   BillingDetailsC   s
   
r.   c                   @   sj   e Zd ZU eed  ed< eed  ed< ee ed< ee ed< ee ed< ed ed	< ee ed
< dS )z8InboundTransfer.OriginPaymentMethodDetails.UsBankAccount)ZcompanyZ
individualZaccount_holder_type)ZcheckingZsavingsZaccount_typeZ	bank_namefingerprintZlast4ZachnetworkZrouting_numberN)r   r   r   r   r   r   r$   r    r    r    r!   UsBankAccounti   s   
r1   billing_detailsus_bank_accounttype)r2   r3   N)
r   r   r   r	   r.   r1   r   r   r   r-   r    r    r    r!   OriginPaymentMethodDetailsB   s   
&r5   c                   @   s2   e Zd ZU ee ed< ee ed< ee ed< dS )z!InboundTransfer.StatusTransitionsZcanceled_atZ	failed_atZsucceeded_atN)r   r   r   r   intr   r    r    r    r!   StatusTransitions   s   
r7   c                   @   s   e Zd ZU ed ed< dS )InboundTransfer.CancelParams	List[str]expandNr   r   r   r   r   r    r    r    r!   CancelParams   s   
r<   c                   @   s^   e Zd ZU eed< eed< ed ed< ed ed< eed< ed ed	< eed
< ed ed< dS )InboundTransfer.CreateParamsamountcurrencyr$   descriptionr9   r:   financial_accountzDict[str, str]metadataorigin_payment_methodstatement_descriptorN)r   r   r   r6   r   r$   r   r    r    r    r!   CreateParams   s   
rE   c                   @   sR   e Zd ZU ed ed< ed ed< eed< ed ed< ed ed< ed	 ed
< dS )InboundTransfer.ListParamsr$   Zending_beforer9   r:   rA   r6   limitZstarting_afterz8Literal['canceled', 'failed', 'processing', 'succeeded']statusN)r   r   r   r   r   r$   r    r    r    r!   
ListParams   s   
rI   c                   @   s   e Zd ZU ed ed< dS )InboundTransfer.RetrieveParamsr9   r:   Nr;   r    r    r    r!   RetrieveParams   s   
rK   c                   @   s&   e Zd ZU ed ed< ed ed< dS )InboundTransfer.FailParamsr9   r:   (InboundTransfer.FailParamsFailureDetailsfailure_detailsNr;   r    r    r    r!   
FailParams   s
   
rO   c                   @   s   e Zd ZU ed ed< dS )rM   a;  Literal['account_closed', 'account_frozen', 'bank_account_restricted', 'bank_ownership_changed', 'debit_not_authorized', 'incorrect_account_holder_address', 'incorrect_account_holder_name', 'incorrect_account_holder_tax_id', 'insufficient_funds', 'invalid_account_number', 'invalid_currency', 'no_account', 'other']r   Nr;   r    r    r    r!   FailParamsFailureDetails   s   
rP   c                   @   s   e Zd ZU ed ed< dS )+InboundTransfer.ReturnInboundTransferParamsr9   r:   Nr;   r    r    r    r!   ReturnInboundTransferParams   s   
rR   c                   @   s   e Zd ZU ed ed< dS )InboundTransfer.SucceedParamsr9   r:   Nr;   r    r    r    r!   SucceedParams  s   
rT   r>   Z
cancelablecreatedr?   r@   rN   rA   Zhosted_regulatory_receipt_urlidlinked_flowsZlivemoderB   objectrC   origin_payment_method_detailsreturnedrD   )canceledfailed
processingZ	succeededrH   status_transitionsr   ZtransactionNr8   )inbound_transferapi_keystripe_versionstripe_accountparamsreturnc              
   K   s*   t d| jddjt|d||||dS )-
        Cancels an InboundTransfer.
        r   post8/v1/treasury/inbound_transfers/{inbound_transfer}/cancelr_   r`   ra   rb   rc   r   _static_requestformatr   sanitize_id)clsr_   r`   ra   rb   rc   r    r    r!   _cls_cancelU  s    zInboundTransfer._cls_cancelc                 K   s   dS re   Nr    )r_   r`   ra   rb   rc   r    r    r!   cancelq  s    zInboundTransfer.cancelidempotency_keyrc   rd   c                 K   s   dS rp   r    selfrs   rc   r    r    r!   rq     s    ro   c              
   K   s,   t d| jddjt| dd||dS )re   r   rf   rg   rV   rh   rs   rc   )r   _requestrl   r   rm   getrt   r    r    r!   rq     s    r=   )r`   rs   ra   rb   rc   rd   c                 K   s    t d| d|  |||||S )z-
        Creates an InboundTransfer.
        r   rf   )r   rk   	class_url)rn   r`   rs   ra   rb   rc   r    r    r!   create  s    zInboundTransfer.createrF   )r`   ra   rb   rc   rd   c                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )z^
        Returns a list of InboundTransfers sent from the specified FinancialAccount.
        rx   ri   z%Expected list object from API, got %s)rk   ry   
isinstancer   	TypeErrorr4   r   )rn   r`   ra   rb   rc   resultr    r    r!   list  s    
zInboundTransfer.listrJ   )rV   rc   rd   c                 K   s   | |fi |}|   |S )zG
        Retrieves the details of an existing InboundTransfer.
        )refresh)rn   rV   rc   instancer    r    r!   retrieve  s    zInboundTransfer.retrievec                
   @   s  e Zd ZU ed ed< edeee ee ee ed ddddZ	e
edeee ee ee ed dddd	Ze
d ee ed dd
dd	Zedd!ee ed dd
dd	Zed"eee ee ee ed ddddZe
ed#eee ee ee ed ddddZe
d$ee ed dd
ddZedd%ee ed dd
ddZed&eee ee ee ed ddddZe
ed'eee ee ee ed ddddZe
d(ee ed dd
ddZedd)ee ed dd
ddZdS )*zInboundTransfer.TestHelpersr   _resource_clsNrL   )rV   r`   ra   rb   rc   rd   c              
   K   s*   t d| jddjt|d||||dS )
            Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state.
            r   rf   5/v1/test_helpers/treasury/inbound_transfers/{id}/failrV   ri   rj   rn   rV   r`   ra   rb   rc   r    r    r!   	_cls_fail  s    z%InboundTransfer.TestHelpers._cls_failc                 K   s   dS r   Nr    rV   r`   ra   rb   rc   r    r    r!   fail  s    z InboundTransfer.TestHelpers.failrr   c                 K   s   dS r   r    rt   r    r    r!   r     s    r   c              
   K   s0   t d| jjddjt| jdd||dS )r   r   rf   r   rV   r   rv   r   resourcerw   rl   r   rm   rx   rt   r    r    r!   r   %  s    rQ   c              
   K   s*   t d| jddjt|d||||dS )
            Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state.
            r   rf   7/v1/test_helpers/treasury/inbound_transfers/{id}/returnr   ri   rj   r   r    r    r!   _cls_return_inbound_transfer<  s    z8InboundTransfer.TestHelpers._cls_return_inbound_transferc                 K   s   dS r   Nr    r   r    r    r!   return_inbound_transferX  s    z3InboundTransfer.TestHelpers.return_inbound_transferc                 K   s   dS r   r    rt   r    r    r!   r   h  s    r   c              
   K   s0   t d| jjddjt| jdd||dS )r   r   rf   r   rV   r   rv   r   rt   r    r    r!   r   u  s    rS   c              
   K   s*   t d| jddjt|d||||dS )
            Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state.
            r   rf   8/v1/test_helpers/treasury/inbound_transfers/{id}/succeedr   ri   rj   r   r    r    r!   _cls_succeed  s    z(InboundTransfer.TestHelpers._cls_succeedc                 K   s   dS r   Nr    r   r    r    r!   succeed  s    z#InboundTransfer.TestHelpers.succeedc                 K   s   dS r   r    rt   r    r    r!   r     s    r   c              
   K   s0   t d| jjddjt| jdd||dS )r   r   rf   r   rV   r   rv   r   rt   r    r    r!   r     s    )NNN)NNN)N)N)NNN)NNN)N)N)NNN)NNN)N)N)r   r   r   r   r   classmethodr$   r   r   r   r   staticmethodr   r
   r   r   r   r   r    r    r    r!   TestHelpers  s  
                        r   c                 C   s
   |  | S )N)r   )ru   r    r    r!   test_helpers  s    zInboundTransfer.test_helpers)rN   rW   rY   r^   )NNN)NNN)N)N)NNNN)NNN)-r   r   r   __doc__r   r   r   r   r	   r"   r%   r5   r7   r   r<   rE   rI   rK   rO   r   rP   rR   rT   r6   boolr$   r   r   r   r   r   ro   r   r   rq   r
   rz   r   r~   r   r   r   propertyr   r-   r    r    r    r!   r      s   
P"               
 t
r   N)#Zstriper   Zstripe.api_resources.abstractr   r   r   Z%stripe.api_resources.expandable_fieldr   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr	   Zstripe.utilr
   typingr   r   r   r   r   r   Ztyping_extensionsr   r   r   r   r   r   Z)stripe.api_resources.treasury.transactionr   r   r   r   r    r    r    r!   <module>   s(     	
     Q