
    Ai*                         d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 e
rBd dlmZ 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 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  ddgddgdZ! G d de      Z"y)    )StripeService)sanitize_id)Optionalcast)import_module)TYPE_CHECKING)
CreditNote)CreditNoteLineItemService)CreditNotePreviewLinesService)
ListObject)RequestOptions)CreditNoteCreateParams)CreditNoteListParams)CreditNotePreviewParams)CreditNoteRetrieveParams)CreditNoteUpdateParams)CreditNoteVoidCreditNoteParamsz%stripe._credit_note_line_item_servicer
   z)stripe._credit_note_preview_lines_servicer   )
line_itemspreview_linesc            	           e Zd ZU ded<   ded<    fdZd Z	 	 d ded   d	ed
   ddfdZ	 	 d ded   d	ed
   ddfdZ	 d!ddd	ed
   ddfdZ		 d!ddd	ed
   ddfdZ
	 	 d deded   d	ed
   ddfdZ	 	 d deded   d	ed
   ddfdZ	 	 d deded   d	ed
   ddfdZ	 	 d deded   d	ed
   ddfdZ	 d!ddd	ed
   ddfdZ	 d!ddd	ed
   ddfdZ	 	 d deded   d	ed
   ddfdZ	 	 d deded   d	ed
   ddfdZ xZS )"CreditNoteServicer
   r   r   r   c                 $    t         |   |       y N)super__init__)self	requestor	__class__s     N/var/www/html/immo/lib/python3.12/site-packages/stripe/_credit_note_service.pyr   zCreditNoteService.__init__.   s    #    c                     	 t         |   \  }}t        t        |      |      }t        | | || j                               t        | |      S # t
        $ r t               w xY wr   )_subservicesgetattrr   setattr
_requestorKeyErrorAttributeError)r   nameimport_fromserviceservice_classs        r   __getattr__zCreditNoteService.__getattr__1   sn    	##/#5 K#k*M doo.
 4&& 	# ""	#s   A	A A paramsr   optionsr   returnListObject[CreditNote]c           
      B    t        d| j                  ddd||            S )1
        Returns a list of credit notes.
        r0   get/v1/credit_notesapibase_addressr-   r.   r   _requestr   r-   r.   s      r   listzCreditNoteService.listA   s4     $MM""  	
 		
r    c           
      ^   K   t        d| j                  ddd||       d{         S 7 w)r2   r0   r3   r4   r5   r6   Nr   _request_asyncr:   s      r   
list_asynczCreditNoteService.list_asyncT   sD      $%%"" &  	
 		
    -+
	-r   r	   c           
      B    t        d| j                  ddd||            S )  
        Issue a credit note to adjust the amount of a finalized invoice. A credit note will first reduce the invoice's amount_remaining (and amount_due), but not below zero.
        This amount is indicated by the credit note's pre_payment_amount. The excess amount is indicated by post_payment_amount, and it can result in any combination of the following:


        Refunds: create a new refund (using refund_amount) or link existing refunds (using refunds).
        Customer balance credit: credit the customer's balance (using credit_amount) which will be automatically applied to their next invoice when it's finalized.
        Outside of Stripe credit: record the amount that is or will be credited outside of Stripe (using out_of_band_amount).


        The sum of refunds, customer balance credits, and outside of Stripe credits must equal the post_payment_amount.

        You may issue multiple credit notes for an invoice. Each credit note may increment the invoice's pre_payment_credit_notes_amount,
        post_payment_credit_notes_amount, or both, depending on the invoice's amount_remaining at the time of credit note creation.
        r	   postr4   r5   r6   r8   r:   s      r   createzCreditNoteService.createg   s4    ( MM""  	
 		
r    c           
      ^   K   t        d| j                  ddd||       d{         S 7 w)rB   r	   rC   r4   r5   r6   Nr=   r:   s      r   create_asynczCreditNoteService.create_async   sD     ( %%"" &  	
 		
r@   idr   c                 t    t        d| j                  ddj                  t        |            d||            S )M
        Retrieves the credit note object with the given identifier.
        r	   r3   /v1/credit_notes/{id}rG   r5   r6   r   r9   formatr   r   rG   r-   r.   s       r   retrievezCreditNoteService.retrieve   sF     MM'..+b/.B"  	
 		
r    c                    K   t        d| j                  ddj                  t        |            d||       d{         S 7 w)rI   r	   r3   rJ   rK   r5   r6   Nr   r>   rM   r   rN   s       r   retrieve_asyncz CreditNoteService.retrieve_async   sV      %%'..+b/.B" &  	
 		
   9AA
	Ar   c                 t    t        d| j                  ddj                  t        |            d||            S )2
        Updates an existing credit note.
        r	   rC   rJ   rK   r5   r6   rL   rN   s       r   updatezCreditNoteService.update   sF     MM'..+b/.B"  	
 		
r    c                    K   t        d| j                  ddj                  t        |            d||       d{         S 7 w)rU   r	   rC   rJ   rK   r5   r6   NrQ   rN   s       r   update_asynczCreditNoteService.update_async   sV      %%'..+b/.B" &  	
 		
rS   r   c           
      B    t        d| j                  ddd||            S )E
        Get a preview of a credit note without creating it.
        r	   r3   /v1/credit_notes/previewr5   r6   r8   r:   s      r   previewzCreditNoteService.preview   s4     MM*"  	
 		
r    c           
      ^   K   t        d| j                  ddd||       d{         S 7 w)rZ   r	   r3   r[   r5   r6   Nr=   r:   s      r   preview_asynczCreditNoteService.preview_async  sD      %%*" &  	
 		
r@   r   c                 t    t        d| j                  ddj                  t        |            d||            S )
        Marks a credit note as void. Learn more about [voiding credit notes](https://docs.stripe.com/docs/billing/invoices/credit-notes#voiding).
        r	   rC   /v1/credit_notes/{id}/voidrK   r5   r6   rL   rN   s       r   void_credit_notez"CreditNoteService.void_credit_note  sF     MM,33{23G"  	
 		
r    c                    K   t        d| j                  ddj                  t        |            d||       d{         S 7 w)r`   r	   rC   ra   rK   r5   r6   NrQ   rN   s       r   void_credit_note_asyncz(CreditNoteService.void_credit_note_async/  sV      %%,33{23G" &  	
 		
rS   )NNr   )__name__
__module____qualname____annotations__r   r,   r   r;   r?   rD   rF   strrO   rR   rV   rX   r\   r^   rb   rd   __classcell__)r   s   @r   r   r   *   s   ++22$#$ 48.2
/0
 *+
 
"	
* 48.2
/0
 *+
 
"	
, /3
(
 *+
 
	
D /3
(
 *+
 
	
D 8<.2	

 34
 *+	

 

. 8<.2	

 34
 *+	

 

. 6:.2	

 12
 *+	

 

. 6:.2	

 12
 *+	

 

. /3
)
 *+
 
	
, /3
)
 *+
 
	
, >B.2	

 9:
 *+	

 

. >B.2	

 9:
 *+	

 

r    r   N)#stripe._stripe_servicer   stripe._utilr   typingr   r   	importlibr   typing_extensionsr   stripe._credit_noter	   %stripe._credit_note_line_item_servicer
   )stripe._credit_note_preview_lines_servicer   stripe._list_objectr   stripe._request_optionsr   (stripe.params._credit_note_create_paramsr   &stripe.params._credit_note_list_paramsr   )stripe.params._credit_note_preview_paramsr   *stripe.params._credit_note_retrieve_paramsr   (stripe.params._credit_note_update_paramsr   2stripe.params._credit_note_void_credit_note_paramsr   r"   r    r    r   <module>r|      sv    1 $ ! # +.O /6OK P 	0#
 	4'	W
 W
r    