
    <@gEZ                         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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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d0Z i i fd%edd/dedefd1Z! xZ"S )2CreditNoteServicec                     t         |   |       t        | j                        | _        t        | j                        | _        y )N)super__init__r   
_requestor
line_itemsr   preview_lines)self	requestor	__class__s     Z/var/www/html/AdoubleTech/venv/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   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refund_amount*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--	 (,,	 *
 	
	 C  	 #3''	 #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_itemrB   typeunit_amountunit_amount_decimalNr8   r9   r:   r   r;   r<   r=   r   r>   r   r   CreateParamsLinez"CreditNoteService.CreateParamsLineY   s    C  	 !%%	 's++	 c""	 !K
 	
	 677	 =>>	 !%%	 )--	r   rM   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y)+CreditNoteService.CreateParamsLineTaxAmountr   tax_ratetaxable_amountNr8   r9   r:   r;   r<   r=   r>   r   r   CreateParamsLineTaxAmountrO      %    	 	 	r   rS   c                       e Zd ZU ee   ed<   y)r5   shipping_rateNr8   r9   r:   r   r=   r<   r>   r   r   CreateParamsShippingCostz*CreditNoteService.CreateParamsShippingCost       "3''	r   rX   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)r8   r9   r:   r   r<   r=   r   r;   r>   r   r   
ListParamsr[      s    FGG	 c""	 #3''	 DI&&	 S!!	 3	 $C((	r   ra   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)r8   r9   r:   r   r;   r<   r>   r   r   ListParamsCreatedrc      sH    	 	 	 	r   rh   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   ed<   	 ed   ed<   y)CreditNoteService.PreviewParamsr   r    r!   r"   r%   r&   r'   #CreditNoteService.PreviewParamsLiner)   r*   r+   r,   r-   r2   r3   r4   +CreditNoteService.PreviewParamsShippingCostr6   Nr7   r>   r   r   PreviewParamsrj      s"   C  	 #3''	 "#&&	  (= >??	 DI&&	 	 4 EFGG	 #	 d38n--	 (,,	 *
 	
	 C  	 #3''	 #9
 	
	r   rm   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)rk   r   rA   rB   rC   z>Literal['']|List[CreditNoteService.PreviewParamsLineTaxAmount]rD   rE   rF   rG   rI   rJ   rK   NrL   r>   r   r   PreviewParamsLinez#CreditNoteService.PreviewParamsLine  s    C  	 !%%	 's++	 c""	 !L
 	
	 677	 =>>	 !%%	 )--	r   ro   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y),CreditNoteService.PreviewParamsLineTaxAmountr   rP   rQ   NrR   r>   r   r   PreviewParamsLineTaxAmountrq   0  rT   r   rr   c                       e Zd ZU ee   ed<   y)rl   rV   NrW   r>   r   r   PreviewParamsShippingCostz+CreditNoteService.PreviewParamsShippingCost>  rY   r   rt   c                   $    e Zd ZU eee      ed<   y) CreditNoteService.RetrieveParamsr&   Nr8   r9   r:   r   r   r=   r<   r>   r   r   RetrieveParamsrv   D      DI&&	r   rx   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)r8   r9   r:   r   r   r=   r<   r
   r>   r   r   UpdateParamsr{   J  sB    DI&&	 #	 d38n--	r   r|   c                   $    e Zd ZU eee      ed<   y)&CreditNoteService.VoidCreditNoteParamsr&   Nrw   r>   r   r   VoidCreditNoteParamsr~   X  ry   r   r   paramsr[   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.list^  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_asyncq  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. For a status=open invoice, a credit note reduces
        its amount_due. For a status=paid invoice, a credit note does not affect its amount_due. Instead, it can result
        in any combination of the following:


        Refund: create a new refund (using refund_amount) or link an existing refund (using refund).
        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).


        For post-payment credit notes the sum of the refund, credit and outside of Stripe amounts must equal the credit note total.

        You may issue multiple credit notes for an invoice. Each credit note will increment the invoice's pre_payment_credit_notes_amount
        or post_payment_credit_notes_amount depending on its status 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idrv   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   rj   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_async'  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://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_note:  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_asyncN  sV      %%,33{23G" &  	
 		
r   )#r8   r9   r:   r   r   r?   rM   rS   rX   ra   rh   rm   ro   rr   rt   rx   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 9 Y <I $A	 AF&I &PY I  y y  24"$
.
  
 
J		
* 24"$
.
  
 
J		
, #%
0
  
 
	
F #%
0
  
 
	
F 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 $ # # = =P	
 P	
r   