
    HUh]                         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mZmZ d d	lmZmZmZ  G d
 de      Zy)    )
CreditNote)CreditNoteLineItemService)CreditNotePreviewLinesService)
ListObject)RequestOptions)StripeService)sanitize_id)DictListcast)LiteralNotRequired	TypedDictc            	           e Zd Z fdZ G d de      Z G d de      Z G d de      Z G d d	e      Z G d
 de      Z	 G d de      Z
 G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zi i fd d!d"ed#ee   fd$Zi i fd d!d"ed#ee   fd%Zi fd d&d"ed#efd'Zi fd d&d"ed#efd(Zi i fd)ed d*d"ed#efd+Zi i fd)ed d*d"ed#efd,Zi i fd)ed d-d"ed#efd.Zi i fd)ed d-d"ed#efd/Zi fd d0d"ed#efd1Z i fd d0d"ed#efd2Z!i i fd)ed d3d"ed#efd4Z"i i fd)ed d3d"ed#efd5Z# xZ$S )6CreditNoteServicec                     t         |   |       t        | j                        | _        t        | j                        | _        y )N)super__init__r   
_requestor
line_itemsr   preview_lines)self	requestor	__class__s     [/var/www/html/Ryun_Seer/newvenv/lib/python3.12/site-packages/stripe/_credit_note_service.pyr   zCreditNoteService.__init__   s1    #3DOOD:4??K    c                   *   e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 eed      ed<   	 eee      ed<   	 eed<   	 eed      ed	<   	 ee   ed
<   	 ee	eef      ed<   	 ee   ed<   	 eed      ed<   	 ee   ed<   	 eed      ed<   	 ed   ed<   y)CreditNoteService.CreateParamsamountcredit_amounteffective_atcredit_notenone
email_typeexpandinvoice"CreditNoteService.CreateParamsLinelinesmemometadataout_of_band_amount	duplicate
fraudulentorder_changeproduct_unsatisfactoryreasonrefund_amount$CreditNoteService.CreateParamsRefundrefunds*CreditNoteService.CreateParamsShippingCostshipping_costN
__name__
__module____qualname__r   int__annotations__r   r   strr
    r   r   CreateParamsr      s(   C  	 #3''	 "#&&	  (= >??	 DI&&	 	 4 DEFF	 #	 d38n--	 (,,	 *
 	
	 #3''	 T"HIJJ	 #8
 	
	r   r@   c                       e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   	 ed   ed<   	 ed   ed<   	 ed	   ed
<   	 ee   ed<   	 ee   ed<   y)r(   r   descriptioninvoice_line_itemquantityz=Literal['']|List[CreditNoteService.CreateParamsLineTaxAmount]tax_amountsLiteral['']|List[str]	tax_ratescustom_line_itemrC   typeunit_amountunit_amount_decimalNr9   r:   r;   r   r<   r=   r>   r   r?   r   r   CreateParamsLinez"CreditNoteService.CreateParamsLineY   s    C  	 !%%	 's++	 c""	 !K
 	
	 677	 =>>	 !%%	 )--	r   rN   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y)+CreditNoteService.CreateParamsLineTaxAmountr   tax_ratetaxable_amountNr9   r:   r;   r<   r=   r>   r?   r   r   CreateParamsLineTaxAmountrP      %    	 	 	r   rT   c                   0    e Zd ZU ee   ed<   	 ee   ed<   y)r4   amount_refundedrefundNr9   r:   r;   r   r<   r=   r>   r?   r   r   CreateParamsRefundz$CreditNoteService.CreateParamsRefund   $    $S))	 C  	r   rZ   c                       e Zd ZU ee   ed<   y)r6   shipping_rateNr9   r:   r;   r   r>   r=   r?   r   r   CreateParamsShippingCostz*CreditNoteService.CreateParamsShippingCost       "3''	r   r_   c                       e Zd ZU ed   ed<   	 ee   ed<   	 ee   ed<   	 eee      ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y	)
CreditNoteService.ListParamsz'CreditNoteService.ListParamsCreated|intcreatedcustomerending_beforer&   r'   limitstarting_afterN)r9   r:   r;   r   r=   r>   r   r<   r?   r   r   
ListParamsrb      s    FGG	 c""	 #3''	 DI&&	 S!!	 3	 $C((	r   rh   c                   T    e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)#CreditNoteService.ListParamsCreatedgtgteltlteN)r9   r:   r;   r   r<   r=   r?   r   r   ListParamsCreatedrj      sH    	 	 	 	r   ro   c                   *   e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 eed      ed<   	 eee      ed<   	 eed<   	 eed      ed	<   	 ee   ed
<   	 ee	eef      ed<   	 ee   ed<   	 eed      ed<   	 ee   ed<   	 eed      ed<   	 ed   ed<   y)CreditNoteService.PreviewParamsr   r    r!   r"   r%   r&   r'   #CreditNoteService.PreviewParamsLiner)   r*   r+   r,   r-   r2   r3   %CreditNoteService.PreviewParamsRefundr5   +CreditNoteService.PreviewParamsShippingCostr7   Nr8   r?   r   r   PreviewParamsrq      s(   C  	 #3''	 "#&&	  (= >??	 DI&&	 	 4 EFGG	 #	 d38n--	 (,,	 *
 	
	 #3''	 T"IJKK	 #9
 	
	r   ru   c                       e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   	 ed   ed<   	 ed   ed<   	 ed	   ed
<   	 ee   ed<   	 ee   ed<   y)rr   r   rB   rC   rD   z>Literal['']|List[CreditNoteService.PreviewParamsLineTaxAmount]rE   rF   rG   rH   rJ   rK   rL   NrM   r?   r   r   PreviewParamsLinez#CreditNoteService.PreviewParamsLine  s    C  	 !%%	 's++	 c""	 !L
 	
	 677	 =>>	 !%%	 )--	r   rw   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y),CreditNoteService.PreviewParamsLineTaxAmountr   rQ   rR   NrS   r?   r   r   PreviewParamsLineTaxAmountry   :  rU   r   rz   c                   0    e Zd ZU ee   ed<   	 ee   ed<   y)rs   rW   rX   NrY   r?   r   r   PreviewParamsRefundz%CreditNoteService.PreviewParamsRefundH  r[   r   r|   c                       e Zd ZU ee   ed<   y)rt   r]   Nr^   r?   r   r   PreviewParamsShippingCostz+CreditNoteService.PreviewParamsShippingCostR  r`   r   r~   c                   $    e Zd ZU eee      ed<   y) CreditNoteService.RetrieveParamsr&   Nr9   r:   r;   r   r   r>   r=   r?   r   r   RetrieveParamsr   X      DI&&	r   r   c                   R    e Zd ZU eee      ed<   	 ee   ed<   	 eeeef      ed<   y)CreditNoteService.UpdateParamsr&   r*   r+   N)r9   r:   r;   r   r   r>   r=   r
   r?   r   r   UpdateParamsr   ^  sB    DI&&	 #	 d38n--	r   r   c                   $    e Zd ZU eee      ed<   y)&CreditNoteService.VoidCreditNoteParamsr&   Nr   r?   r   r   VoidCreditNoteParamsr   l  r   r   r   paramsrb   optionsreturnc           
      X    t        t        t           | j                  ddd||            S )1
        Returns a list of credit notes.
        get/v1/credit_notesapibase_addressr   r   )r   r   r   _requestr   r   r   s      r   listzCreditNoteService.listr  s9     z"MM""  	
 		
r   c           
      t   K   t        t        t           | j                  ddd||       d{         S 7 w)r   r   r   r   r   N)r   r   r   _request_asyncr   s      r   
list_asynczCreditNoteService.list_async  sI      z"%%"" &  	
 		
s   +86
	8r   c           
      J    t        t        | 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.
        postr   r   r   r   r   r   r   s      r   createzCreditNoteService.create  s4    ( MM""  	
 		
r   c           
      f   K   t        t        | j                  ddd||       d{         S 7 w)r   r   r   r   r   Nr   r   r   r   s      r   create_asynczCreditNoteService.create_async  sD     ( %%"" &  	
 		
   $1/
	1idr   c                 |    t        t        | j                  ddj                  t	        |            d||            S )M
        Retrieves the credit note object with the given identifier.
        r   /v1/credit_notes/{id}r   r   r   r   r   r   formatr	   r   r   r   r   s       r   retrievezCreditNoteService.retrieve  sF     MM'..+b/.B"  	
 		
r   c                    K   t        t        | j                  ddj                  t	        |            d||       d{         S 7 w)r   r   r   r   r   r   Nr   r   r   r   r	   r   s       r   retrieve_asyncz CreditNoteService.retrieve_async  sV      %%'..+b/.B" &  	
 		
   =A
A
 	A
r   c                 |    t        t        | j                  ddj                  t	        |            d||            S )2
        Updates an existing credit note.
        r   r   r   r   r   r   r   s       r   updatezCreditNoteService.update  sF     MM'..+b/.B"  	
 		
r   c                    K   t        t        | j                  ddj                  t	        |            d||       d{         S 7 w)r   r   r   r   r   r   Nr   r   s       r   update_asynczCreditNoteService.update_async  sV      %%'..+b/.B" &  	
 		
r   rq   c           
      J    t        t        | j                  ddd||            S )E
        Get a preview of a credit note without creating it.
        r   /v1/credit_notes/previewr   r   r   r   s      r   previewzCreditNoteService.preview&  s4     MM*"  	
 		
r   c           
      f   K   t        t        | j                  ddd||       d{         S 7 w)r   r   r   r   r   Nr   r   s      r   preview_asynczCreditNoteService.preview_async9  sD      %%*" &  	
 		
r   r   c                 |    t        t        | 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   /v1/credit_notes/{id}/voidr   r   r   r   r   s       r   void_credit_notez"CreditNoteService.void_credit_noteL  sF     MM,33{23G"  	
 		
r   c                    K   t        t        | j                  ddj                  t	        |            d||       d{         S 7 w)r   r   r   r   r   r   Nr   r   s       r   void_credit_note_asyncz(CreditNoteService.void_credit_note_async`  sV      %%,33{23G" &  	
 		
r   )%r9   r:   r;   r   r   r@   rN   rT   rZ   r_   rh   ro   ru   rw   rz   r|   r~   r   r   r   r   r   r   r   r   r   r   r>   r   r   r   r   r   r   r   r   __classcell__)r   s   @r   r   r      s   L
Ay AF&9 &PI Y 9 Y <I $A	 AF&I &PY i I  y y  24"$
.
  
 
J		
* 24"$
.
  
 
J		
, #%
0
  
 
	
D #%
0
  
 
	
D 68"$	

 3
  	

 

. 68"$	

 3
  	

 

. 46"$	

 1
  	

 

. 46"$	

 1
  	

 

. #%
1
  
 
	
, #%
1
  
 
	
, <>"$	

 9
  	

 

. <>"$	

 9
  	

 

r   r   N)stripe._credit_noter   %stripe._credit_note_line_item_servicer   )stripe._credit_note_preview_lines_servicer   stripe._list_objectr   stripe._request_optionsr   stripe._stripe_servicer   stripe._utilr	   typingr
   r   r   typing_extensionsr   r   r   r   r?   r   r   <module>r      s:    + K + 2 0 $ # # = =b	
 b	
r   