a
    !fw4                     @   s   d dl 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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
 Zeej_dS )    )APIResourceTestHelpersListableAPIResource)ExpandableField)
ListObject)RequestOptions)StripeObject)ClassVarListOptionalcast)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eed< eed< eed< eed< eed  ed< ee ed< ee ed< eed< ee	 ed< e
ed< eed< ed  ed!< ed ed"< ee ed#< ed$ ed%< eed&  ed'< ed6ee ee ee ed) ed  d*d+d,Zeeed- d d.d/d0ZG d1d2 d2ed  Zed3d4 Z e	e
ed5Z!d(S )7ReceivedDebitz
    ReceivedDebits represent funds pulled from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts). These are not initiated from the FinancialAccount.
    ztreasury.received_debitOBJECT_NAMEc                   @   s   e Zd ZU G dd deZG dd deZG dd deZeed  e	d< ee	d	< ee e	d
< ee
 e	d< ed e	d< ee e	d< eeedZdS )z,ReceivedDebit.InitiatingPaymentMethodDetailsc                   @   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 )z;ReceivedDebit.InitiatingPaymentMethodDetails.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 )zCReceivedDebit.InitiatingPaymentMethodDetails.BillingDetails.AddressZcityZcountryline1line2Zpostal_codestateN__name__
__module____qualname__r
   str__annotations__ r   r   m/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/treasury/received_debit.pyAddress$   s   
r    addressemailnameN)	r   r   r   r   r    r   r
   r   _inner_class_typesr   r   r   r   BillingDetails#   s
   
r%   c                   @   s"   e Zd ZU eed< ed ed< dS )z=ReceivedDebit.InitiatingPaymentMethodDetails.FinancialAccountidstripenetworkN)r   r   r   r   r   r   r   r   r   r   FinancialAccountI   s   
r)   c                   @   s2   e Zd ZU ee ed< ee ed< ee ed< dS )z:ReceivedDebit.InitiatingPaymentMethodDetails.UsBankAccountZ	bank_nameZlast4routing_numberNr   r   r   r   r   UsBankAccountS   s   
r+   Zpaymentsbalancebilling_detailsfinancial_accountissuing_card)r,   r.   r/   r'   us_bank_accounttyper0   )r-   r.   r0   N)r   r   r   r   r%   r)   r+   r
   r   r   r   r$   r   r   r   r   InitiatingPaymentMethodDetails"   s   
&

r2   c                   @   s>   e Zd ZU ee ed< ee ed< ee ed< ee ed< dS )zReceivedDebit.LinkedFlowsZdebit_reversalZinbound_transferZissuing_authorizationZissuing_transactionNr   r   r   r   r   LinkedFlows|   s
   
r3   c                   @   s*   e Zd ZU ee ed< eed  ed< dS )zReceivedDebit.ReversalDetailsdeadline)Zalready_reversedZdeadline_passedZnetwork_restrictedotherZsource_flow_restrictedZrestricted_reasonN)r   r   r   r
   intr   r   r   r   r   r   ReversalDetails   s   
	r7   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 )ReceivedDebit.ListParamsr   Zending_before	List[str]expandr.   r6   limitZstarting_afterzLiteral['failed', 'succeeded']statusN)r   r   r   r   r   r   r   r   r   r   
ListParams   s   
r=   c                   @   s   e Zd ZU ed ed< dS )ReceivedDebit.RetrieveParamsr9   r:   Nr   r   r   r   r   r   r   r   r   RetrieveParams   s   
r@   c                   @   sV   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d
 ed< dS )ReceivedDebit.CreateParamsamountcurrencyr   descriptionr9   r:   r.   8ReceivedDebit.CreateParamsInitiatingPaymentMethodDetails!initiating_payment_method_detailsachr(   N)r   r   r   r6   r   r   r   r   r   r   r   r   CreateParams   s   
rH   c                   @   s&   e Zd ZU ed ed< ed ed< dS )rE   r0   r1   EReceivedDebit.CreateParamsInitiatingPaymentMethodDetailsUsBankAccountN)r   r   r   r   r   r   r   r   r   r   *CreateParamsInitiatingPaymentMethodDetails   s
   
rJ   c                   @   s2   e Zd ZU ed ed< ed ed< ed ed< dS )rI   r   Zaccount_holder_nameZaccount_numberr*   Nr?   r   r   r   r   7CreateParamsInitiatingPaymentMethodDetailsUsBankAccount   s   
rK   rB   createdrC   rD   )Zaccount_closedZaccount_frozenZinsufficient_fundsr5   Zfailure_coder.   Zhosted_regulatory_receipt_urlr&   rF   linked_flowsZlivemode)rG   Zcardr'   r(   objectreversal_details)failedZ	succeededr<   r   ZtransactionNr8   api_keystripe_versionstripe_accountparamsreturnc                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )z3
        Returns a list of ReceivedDebits.
        getrR   rS   rT   rU   z%Expected list object from API, got %s)_static_requestZ	class_url
isinstancer   	TypeErrorr1   r   )clsrR   rS   rT   rU   resultr   r   r   list9  s    
zReceivedDebit.listr>   )r&   rU   rV   c                 K   s   | |fi |}|   |S )z
        Retrieves the details of an existing ReceivedDebit by passing the unique ReceivedDebit ID from the ReceivedDebit list
        )refresh)r\   r&   rU   instancer   r   r   retrieveW  s    zReceivedDebit.retrievec                   @   sF   e Zd ZU ed ed< edee ee ee ed ddddZ	dS )	zReceivedDebit.TestHelpersr   _resource_clsNrA   rQ   c              
   K   s   t d| jdd||||dS )z
            Use this endpoint to simulate a test mode ReceivedDebit initiated by a third party. In live mode, you can't directly create ReceivedDebits initiated by third parties.
            r   postz)/v1/test_helpers/treasury/received_debitsrX   )r   rY   )r\   rR   rS   rT   rU   r   r   r   createe  s    z ReceivedDebit.TestHelpers.create)NNN)
r   r   r   r   r   classmethodr
   r   r   rd   r   r   r   r   TestHelpersb  s   
   rf   c                 C   s
   |  | S )N)rf   )selfr   r   r   test_helpers~  s    zReceivedDebit.test_helpers)rF   rM   rO   )NNN)"r   r   r   __doc__r   r   r   r   r   r2   r3   r7   r   r=   r@   rH   r   rJ   rK   r6   r   r
   boolr   re   r   r   r^   ra   r   rf   propertyrh   r$   r   r   r   r   r      sr   
Z    

r   N)Zstripe.api_resources.abstractr   r   Z%stripe.api_resources.expandable_fieldr   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr   typingr   r	   r
   r   Ztyping_extensionsr   r   r   r   r   r   Z)stripe.api_resources.treasury.transactionr   r   rf   rb   r   r   r   r   <module>   s    	  r