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m	Z	 d dl
mZmZmZ er4d dlmZ d dlmZ G dd	 d	ed	 Zd
S )    )APIResource)ExpandableField)StripeObject)ClassVarListOptional)LiteralUnpackTYPE_CHECKING)PaymentMethod)MandateRetrieveParamsc                   @   s2  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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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ed!Zd"S )#Mandatezm
    A Mandate is a record of the permission that your customer gives you to debit their payment method.
    mandateOBJECT_NAMEc                   @   sl   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                   @      e Zd ZdS )z"Mandate.CustomerAcceptance.OfflineN__name__
__module____qualname__ r   r   o/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_mandate.pyOffline       r   c                   @   (   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   
   
 r   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                   @   r   )zMandate.MultiUseNr   r   r   r   r   MultiUse/   r   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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 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d0< 	 ee ed1< i 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d1eZd2S )3zMandate.PaymentMethodDetailsc                   @   sL   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)invoicesubscriptiondefault_forinterval_description)combinedintervalsporadicpayment_schedule)businesspersonaltransaction_typeN)r   r   r   r   r   r   r   r   r   r   r   r   	AcssDebit3   s   
 r4   c                   @   r   )z&Mandate.PaymentMethodDetails.AmazonPayNr   r   r   r   r   	AmazonPayE   r   r5   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   AuBecsDebitH   s   
 r8   c                   @   s@   e Zd ZU ed ed< 	 eed< 	 eed  ed< 	 eed< dS )z&Mandate.PaymentMethodDetails.BacsDebit)acceptedpendingrefusedrevokednetwork_status	reference)account_closedbank_account_restrictedbank_ownership_changedcould_not_processdebit_not_authorizedrevocation_reasonr6   N)r   r   r   r   r   r   r   r   r   r   r   	BacsDebitN   s   
 	rE   c                   @   r   )z!Mandate.PaymentMethodDetails.CardNr   r   r   r   r   Cardj   r   rF   c                   @   r   )z$Mandate.PaymentMethodDetails.CashappNr   r   r   r   r   Cashappm   r   rG   c                   @   r   )z%Mandate.PaymentMethodDetails.KakaoPayNr   r   r   r   r   KakaoPayp   r   rH   c                   @   r   )z#Mandate.PaymentMethodDetails.KlarnaNr   r   r   r   r   Klarnas   r   rI   c                   @   r   )z#Mandate.PaymentMethodDetails.KrCardNr   r   r   r   r   KrCardv   r   rJ   c                   @   r   )z!Mandate.PaymentMethodDetails.LinkNr   r   r   r   r   Linky   r   rK   c                   @   r   )z%Mandate.PaymentMethodDetails.NaverPayNr   r   r   r   r   NaverPay|   r   rL   c                   @   r   )z*Mandate.PaymentMethodDetails.NzBankAccountNr   r   r   r   r   NzBankAccount   r   rM   c                   @   r   )z#Mandate.PaymentMethodDetails.Paypalbilling_agreement_idpayer_idNr   r   r   r   r   Paypal   r    rP   c                   @   r   )z'Mandate.PaymentMethodDetails.RevolutPayNr   r   r   r   r   
RevolutPay   r   rQ   c                   @   s    e Zd ZU eed< 	 eed< dS )z&Mandate.PaymentMethodDetails.SepaDebitr>   r6   Nr7   r   r   r   r   	SepaDebit   
   
 rR   c                   @   s   e Zd ZU eed  ed< dS )z*Mandate.PaymentMethodDetails.UsBankAccountpapercollection_methodN)r   r   r   r   r   r   r   r   r   r   UsBankAccount   s   
 rV   
acss_debit
amazon_payau_becs_debit
bacs_debitcardcashapp	kakao_payklarnakr_cardlink	naver_paynz_bank_accountpaypalrevolut_pay
sepa_debitr$   us_bank_accountN)r   r   r   r   r4   r5   r8   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rP   rQ   rR   rV   r   r   r   r&   r   r   r   r   PaymentMethodDetails2   s   
 

	
rg   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   rS   rj   customer_acceptanceidlivemode	multi_useobjecton_behalf_ofr   payment_methodpayment_method_details
single_use)activeinactiver:   status)rn   rs   r$   paramsr   returnc                 K   s   | |fi |}|   |S )-
        Retrieves a Mandate object.
        )refreshclsrl   rw   instancer   r   r   retrieve   s   zMandate.retrievec                    s$   | |fi |}|  I dH  |S )ry   N)refresh_asyncr{   r   r   r   retrieve_async   s   zMandate.retrieve_async)rk   rn   rr   rs   N)r   r   r   __doc__r   r   r   r   r   r'   r(   rg   rj   r   boolr   r   classmethodr	   r~   r   r&   r   r   r   r   r      s^   
  


r   N)stripe._api_resourcer   stripe._expandable_fieldr   stripe._stripe_objectr   typingr   r   r   typing_extensionsr   r	   r
   stripe._payment_methodr   &stripe.params._mandate_retrieve_paramsr   r   r   r   r   r   <module>   s   