a
    ù!f  ã                   @   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 erld dlmZ G dd	„ d	ed	 ƒZd
S )é    )ÚAPIResource)ÚExpandableField)ÚRequestOptions)ÚStripeObject)ÚClassVarÚListÚOptional)ÚLiteralÚNotRequiredÚUnpackÚTYPE_CHECKING)ÚPaymentMethodc                   @   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e	ed< eed< eed< ee
 ed< ed ed< ee ed< ed ed< eed< ee ed< ed ed< ed ed< eeed d dœdd„ƒZe	e
eed œZd!S )"ÚMandatezm
    A Mandate is a record of the permission that your customer gives you to debit their payment method.
    ZmandateÚOBJECT_NAMEc                   @   sh   e Zd ZU G dd„ deƒZG dd„ deƒZee ed< ee ed< ee ed< e	d ed	< eedœZ
d
S )zMandate.CustomerAcceptancec                   @   s   e Zd ZdS )z"Mandate.CustomerAcceptance.OfflineN©Ú__name__Ú
__module__Ú__qualname__© r   r   ú]/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/mandate.pyÚOffline   s   r   c                   @   s&   e Zd ZU ee ed< ee ed< dS )z!Mandate.CustomerAcceptance.OnlineÚ
ip_addressÚ
user_agentN©r   r   r   r   ÚstrÚ__annotations__r   r   r   r   ÚOnline   s   
r   Zaccepted_atÚofflineÚonline)r   r   ÚtypeN)r   r   r   r   r   r   r   Úintr   r	   Ú_inner_class_typesr   r   r   r   ÚCustomerAcceptance   s   

r"   c                   @   s   e Zd ZdS )zMandate.MultiUseNr   r   r   r   r   ÚMultiUse/   s   r#   c                
   @   s*  e Zd ZU 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 ed< ee ed< ee ed< ee ed< ee ed< ee	 ed< ee
 ed< ee ed< eed< ee ed< eeeeee	e
eedœ	ZdS )zMandate.PaymentMethodDetailsc                   @   sF   e Zd ZU eeed   ed< ee ed< ed ed< ed ed< dS )	z&Mandate.PaymentMethodDetails.AcssDebit)ZinvoiceZsubscriptionZdefault_forZinterval_description)ÚcombinedÚintervalZsporadicZpayment_schedule)ZbusinessZpersonalZtransaction_typeN)r   r   r   r   r   r	   r   r   r   r   r   r   Ú	AcssDebit3   s
   
r&   c                   @   s   e Zd ZU eed< dS )z(Mandate.PaymentMethodDetails.AuBecsDebitÚurlN©r   r   r   r   r   r   r   r   r   ÚAuBecsDebitE   s   
r)   c                   @   s*   e Zd ZU ed ed< eed< eed< dS )z&Mandate.PaymentMethodDetails.BacsDebit)ÚacceptedÚpendingZrefusedZrevokedZnetwork_statusÚ	referencer'   N)r   r   r   r	   r   r   r   r   r   r   Ú	BacsDebitK   s   
ÿr-   c                   @   s   e Zd ZdS )z!Mandate.PaymentMethodDetails.CardNr   r   r   r   r   ÚCard[   s   r.   c                   @   s   e Zd ZdS )z$Mandate.PaymentMethodDetails.CashappNr   r   r   r   r   ÚCashapp^   s   r/   c                   @   s   e Zd ZdS )z!Mandate.PaymentMethodDetails.LinkNr   r   r   r   r   ÚLinka   s   r0   c                   @   s&   e Zd ZU ee ed< ee ed< dS )z#Mandate.PaymentMethodDetails.PaypalZbilling_agreement_idZpayer_idNr   r   r   r   r   ÚPaypald   s   
r1   c                   @   s   e Zd ZU eed< eed< dS )z&Mandate.PaymentMethodDetails.SepaDebitr,   r'   Nr(   r   r   r   r   Ú	SepaDebitn   s   
r2   c                   @   s   e Zd ZdS )z*Mandate.PaymentMethodDetails.UsBankAccountNr   r   r   r   r   ÚUsBankAccountx   s   r3   Ú
acss_debitÚau_becs_debitÚ
bacs_debitÚcardÚcashappÚlinkÚpaypalÚ
sepa_debitr   Úus_bank_account)	r4   r5   r6   r7   r8   r9   r:   r;   r<   N)r   r   r   r   r&   r)   r-   r.   r/   r0   r1   r2   r3   r   r   r   r!   r   r   r   r   ÚPaymentMethodDetails2   s:   


÷r=   c                   @   s   e Zd ZU eed< eed< dS )zMandate.SingleUseÚamountÚcurrencyN)r   r   r   r    r   r   r   r   r   r   Ú	SingleUse”   s   
r@   c                   @   s   e Zd ZU ed ed< dS )úMandate.RetrieveParamsz	List[str]ÚexpandN)r   r   r   r
   r   r   r   r   r   ÚRetrieveParamsž   s   
rC   Úcustomer_acceptanceÚidZlivemodeÚ	multi_useÚobjectZon_behalf_ofr   Zpayment_methodÚpayment_method_detailsÚ
single_use)ÚactiveZinactiver+   Ústatus)rF   rI   r   rA   )rE   ÚparamsÚreturnc                 K   s   | |fi |¤Ž}|  ¡  |S )z-
        Retrieves a Mandate object.
        )Úrefresh)ÚclsrE   rL   Úinstancer   r   r   ÚretrieveÅ   s    zMandate.retrieve)rD   rF   rH   rI   N)r   r   r   Ú__doc__r   r   r	   r   r   r"   r#   r=   r@   r   rC   r   Úboolr   r   Úclassmethodr   rQ   r!   r   r   r   r   r      s6   
b
þür   N)Zstripe.api_resources.abstractr   Z%stripe.api_resources.expandable_fieldr   Zstripe.request_optionsr   Zstripe.stripe_objectr   Útypingr   r   r   Ztyping_extensionsr	   r
   r   r   Z#stripe.api_resources.payment_methodr   r   r   r   r   r   Ú<module>   s   