o
    rN)j3                     @   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   p/var/www/html/finance.cargoinsureonline.com/_shared/backend-venv/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                   @   s(   e Zd ZU ee ed< 	 ee ed< dS )zMandate.MultiUseamountcurrencyN)r   r   r   r   r%   r   r   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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d0< ee ed1< ee ed2< ee ed3< ee ed4< ee ed5< ee ed6< ee ed7< ee ed8< ee ed9< ee ed:< eed;< 	 ee ed<< ee ed=< i d)ed*ed+ed,ed-ed.e	d/e
d0ed1ed2ed3ed4ed5ed6ed7ed8ed9eeeed>Zd?S )@z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   	AcssDebit:   s   
 r6   c                   @   r   )z&Mandate.PaymentMethodDetails.AmazonPayNr   r   r   r   r   	AmazonPayL   r   r7   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   AuBecsDebitO   s   
 r:   c                   @   s\   e Zd ZU ee ed< 	 ed ed< 	 eed< 	 eed  ed< 	 ee ed< 	 eed< d	S )
z&Mandate.PaymentMethodDetails.BacsDebitdisplay_name)acceptedpendingrefusedrevokednetwork_status	reference)account_closedbank_account_restrictedbank_ownership_changedcould_not_processdebit_not_authorizedrevocation_reasonservice_user_numberr8   N)r   r   r   r   r   r   r   r   r   r   r   	BacsDebitU   s&   
 	rI   c                   @   r   )z!Mandate.PaymentMethodDetails.CardNr   r   r   r   r   Cardy   r   rJ   c                   @   r   )z$Mandate.PaymentMethodDetails.CashappNr   r   r   r   r   Cashapp|   r   rK   c                   @   r   )z%Mandate.PaymentMethodDetails.KakaoPayNr   r   r   r   r   KakaoPay   r   rL   c                   @   r   )z#Mandate.PaymentMethodDetails.KlarnaNr   r   r   r   r   Klarna   r   rM   c                   @   r   )z#Mandate.PaymentMethodDetails.KrCardNr   r   r   r   r   KrCard   r   rN   c                   @   r   )z!Mandate.PaymentMethodDetails.LinkNr   r   r   r   r   Link   r   rO   c                   @   r   )z%Mandate.PaymentMethodDetails.NaverPayNr   r   r   r   r   NaverPay   r   rP   c                   @   r   )z*Mandate.PaymentMethodDetails.NzBankAccountNr   r   r   r   r   NzBankAccount   r   rQ   c                   @   r   )z#Mandate.PaymentMethodDetails.Paypalbilling_agreement_idpayer_idNr   r   r   r   r   Paypal   r    rT   c                   @   sr   e Zd ZU ee ed< 	 ed ed< 	 ee ed< 	 ed ed< 	 ee ed< 	 eed  ed	< 	 ee ed
< dS )z"Mandate.PaymentMethodDetails.Paytor(   fixedmaximumamount_typeend_date)adhocannualdailyfortnightlymonthly	quarterlysemi_annualweeklyr2   payments_per_period)dependant_support
governmentloanmortgageotherpensionr4   retailsalarytaxutilitypurpose
start_dateNr   r   r   r   r%   r   r   r   r   r   r   r   Payto   s*   
 
rp   c                   @   sl   e Zd ZU eed  ed< 	 eed  ed< 	 ee ed< 	 eed  ed< 	 ee ed< 	 ee ed	< d
S )z Mandate.PaymentMethodDetails.Pix)alwaysneveramount_includes_iofrU   rX   rY   )
halfyearlyr^   r_   ra   yearlyr2   rA   rn   N)r   r   r   r   r   r   r   r   r   r   r   Pix   s"   
 rv   c                   @   r   )z'Mandate.PaymentMethodDetails.RevolutPayNr   r   r   r   r   
RevolutPay   r   rw   c                   @   s    e Zd ZU eed< 	 eed< dS )z&Mandate.PaymentMethodDetails.SepaDebitrA   r8   Nr9   r   r   r   r   	SepaDebit   
   
 rx   c                   @   r   )z"Mandate.PaymentMethodDetails.TwintNr   r   r   r   r   Twint   r   rz   c                   @   sH   e Zd ZU ee ed< 	 eed  ed< 	 ee ed< 	 ee ed< dS )z Mandate.PaymentMethodDetails.Upir(   rU   rX   descriptionrY   Nro   r   r   r   r   Upi   s   
 r|   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   
 r   
acss_debit
amazon_payau_becs_debit
bacs_debitcardcashapp	kakao_payklarnakr_cardlink	naver_paynz_bank_accountpaypalpaytopixrevolut_pay
sepa_debittwintr$   upius_bank_account)r   r   r   N)r   r   r   r   r6   r7   r:   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rT   rp   rv   rw   rx   rz   r|   r   r   r   r   r&   r   r   r   r   PaymentMethodDetails9   s   
 $
5
	
r   c                   @   s    e Zd ZU eed< 	 eed< dS )zMandate.SingleUser(   r)   N)r   r   r   r%   r   r   r   r   r   r   	SingleUseE  ry   r   customer_acceptanceidlivemode	multi_useobjecton_behalf_ofr   payment_methodpayment_method_details
single_use)activeinactiver=   status)r   r   r$   paramsr   returnc                 K   s   | |fi |}|   |S )-
        Retrieves a Mandate object.
        )refreshclsr   r   instancer   r   r   retrievep  s   zMandate.retrievec                    s$   | |fi |}|  I dH  |S )r   N)refresh_asyncr   r   r   r   retrieve_async{  s   zMandate.retrieve_async)r   r   r   r   N)r   r   r   __doc__r   r   r   r   r   r'   r*   r   r   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   