o
    Bi3                     @   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 er8d dlmZ d dlmZ G d	d
 d
ed
 ZdS )    )APIResource)Customer)ExpandableField)sanitize_id)ClassVarDictOptional)LiteralTYPE_CHECKING)
CreditNote)Invoicec                   @   s   e Zd ZU dZdZeed  ed< eed< 	 eed< 	 e	e
d  ed< 	 eed< 	 e
d	 ed
< 	 e	e ed< 	 eed< 	 eed< 	 e	e
d  ed< 	 eed< 	 e	eeef  ed< 	 ed ed< 	 ed ed< 	 dd ZedddZdS )CustomerBalanceTransactiona5  
    Each customer has a [Balance](https://stripe.com/docs/api/customers/object#customer_object-balance) value,
    which denotes a debit or credit that's automatically applied to their next invoice upon finalization.
    You may modify the value directly by using the [update customer API](https://stripe.com/docs/api/customers/update),
    or by creating a Customer Balance Transaction, which increments or decrements the customer's `balance` by the specified `amount`.

    Related guide: [Customer balance](https://stripe.com/docs/billing/customer/balance)
    customer_balance_transactionOBJECT_NAMEamountcreatedr   credit_notecurrencyr   customerdescriptionending_balanceidr   invoicelivemodemetadataobject)

adjustmentapplied_to_invoicer   initialinvoice_overpaidinvoice_too_largeinvoice_too_small	migrationunapplied_from_invoiceunspent_receiver_credittypec                 C   sB   | j }| j}t|tr|j }t }t|}t|}d|||f S )Nz%s/%s/balance_transactions/%s)r   r   
isinstancer   	class_urlr   )selftokenr   base	cust_extnextn r-   d/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/_customer_balance_transaction.pyinstance_url\   s   
z'CustomerBalanceTransaction.instance_urlreturnc                 K   s   t d)NzCan't retrieve a Customer Balance Transaction without a Customer ID. Use Customer.retrieve_customer_balance_transaction('cus_123', 'cbtxn_123'))NotImplementedError)clsr   paramsr-   r-   r.   retrievef   s   z#CustomerBalanceTransaction.retrieveN)r0   r   )__name__
__module____qualname____doc__r   r   r	   __annotations__intr   r   strboolr   r/   classmethodr4   r-   r-   r-   r.   r      sF   
 

r   N)stripe._api_resourcer   stripe._customerr   stripe._expandable_fieldr   stripe._utilr   typingr   r   r   typing_extensionsr	   r
   stripe._credit_noter   stripe._invoicer   r   r-   r-   r-   r.   <module>   s   