o
    i`                     @   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
 d dlmZmZmZ erJd dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ G dd ded ZdS )    )ExpandableField)
ListObject)ListableAPIResource)StripeObject)ClassVarOptional)LiteralUnpackTYPE_CHECKING)Invoice)CreditGrant)"CreditBalanceTransactionListParams)&CreditBalanceTransactionRetrieveParams)	TestClockc                   @   sL  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
eed< 	 ee	 ed	< 	 ed
 ed< 	 ee
 ed< 	 eed< 	 eed< 	 eed< 	 ed ed< 	 eed  ed< 	 eed  ed< 	 eded ded  fddZeded ded  fddZ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
dZd!S )"CreditBalanceTransactionz
    A credit balance transaction is a resource representing a transaction (either a credit or a debit) against an existing credit grant.
    z"billing.credit_balance_transactionOBJECT_NAMEc                   @   \   e Zd ZU G dd deZG dd deZeed< ee ed< 	 ed ed< 	 eed	Z	d
S )zCreditBalanceTransaction.Creditc                   @   B   e Zd ZU G dd deZee ed< 	 ed ed< 	 deiZdS )z&CreditBalanceTransaction.Credit.Amountc                   @       e Zd ZU eed< 	 eed< dS )z/CreditBalanceTransaction.Credit.Amount.MonetarycurrencyvalueN__name__
__module____qualname__str__annotations__int r   r   /var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/billing/_credit_balance_transaction.pyMonetary#   
   
 r    monetarytypeN	r   r   r   r   r    r   r   r   _inner_class_typesr   r   r   r   Amount"      
 
r&   c                   @   $   e Zd ZU ed ed< 	 eed< dS )z?CreditBalanceTransaction.Credit.CreditsApplicationInvoiceVoidedr   invoiceinvoice_line_itemNr   r   r   r   r   r   r   r   r   r   CreditsApplicationInvoiceVoided7   
   
 r,   amount"credits_application_invoice_voided)r/   credits_grantedr#   )r.   r/   N)
r   r   r   r   r&   r,   r   r   r   r%   r   r   r   r   Credit!   s   
 

r1   c                   @   r   )zCreditBalanceTransaction.Debitc                   @   r   )z%CreditBalanceTransaction.Debit.Amountc                   @   r   )z.CreditBalanceTransaction.Debit.Amount.Monetaryr   r   Nr   r   r   r   r   r    S   r!   r    r"   r#   Nr$   r   r   r   r   r&   R   r'   r&   c                   @   r(   )z-CreditBalanceTransaction.Debit.CreditsAppliedr   r)   r*   Nr+   r   r   r   r   CreditsAppliedg   r-   r2   r.   credits_applied)r3   credits_expiredcredits_voidedr#   )r.   r3   N)
r   r   r   r   r&   r2   r   r   r   r%   r   r   r   r   DebitQ   s   
 

r6   createdcreditr   credit_grantdebiteffective_atidlivemodeobjectr   
test_clock)r8   r:   r#   paramsr   returnc                 K   s4   | j d|  |d}t|tstdt|j |S )A
        Retrieve a list of credit balance transactions.
        getr@   %Expected list object from API, got %s)_static_request	class_url
isinstancer   	TypeErrorr#   r   clsr@   resultr   r   r   list   s   
zCreditBalanceTransaction.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rB   rC   rD   NrE   )_static_request_asyncrG   rH   r   rI   r#   r   rJ   r   r   r   
list_async   s   
z#CreditBalanceTransaction.list_asyncr   c                 K   s   | |fi |}|   |S )9
        Retrieves a credit balance transaction.
        )refreshrK   r<   r@   instancer   r   r   retrieve   s   	z!CreditBalanceTransaction.retrievec                    s$   | |fi |}|  I dH  |S )rP   N)refresh_asyncrR   r   r   r   retrieve_async   s   	z'CreditBalanceTransaction.retrieve_asyncN)r   r   r   __doc__r   r   r   r   r   r1   r6   r   r   r   r   boolclassmethodr	   r   rM   rO   rT   rV   r%   r   r   r   r   r      sn   
 0.r   N)stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   typingr   r   typing_extensionsr   r	   r
   stripe._invoicer   stripe.billing._credit_grantr   =stripe.params.billing._credit_balance_transaction_list_paramsr   Astripe.params.billing._credit_balance_transaction_retrieve_paramsr   stripe.test_helpers._test_clockr   r   r   r   r   r   <module>   s   
