o
    L)j                     @   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 d dlmZmZ d dlmZmZmZmZmZmZ d d	lmZmZmZ erd 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l0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z? d dl@mAZA d dlBmCZC G dd ded ed ed ZDd S )!    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObjectUntypedStripeObject)UpdateableAPIResource)class_method_variantsanitize_id)AnyClassVarListOptionalcastoverload)LiteralUnpackTYPE_CHECKING)Account)Application)Customer)Discount)Invoice)LineItem)Subscription)SubscriptionSchedule)TaxRate)QuoteAcceptParams)QuoteCancelParams)QuoteCreateParams)QuoteFinalizeQuoteParams)'QuoteListComputedUpfrontLineItemsParams)QuoteListLineItemsParams)QuoteListParams)QuoteModifyParams)QuotePdfParams)QuoteRetrieveParams)	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
G dd	 d	eZG d
d deZG dd deZG dd deZG dd deZG dd deZeed< 	 eed< 	 eed  ed< 	 ee ed< 	 ee ed< 	 e	ed< ed ed< 	 e
ed< eed< 	 ee ed< 	 eed   ed!< 	 ee ed"< 	 eeed#   ed$< 	 ee ed%< 	 eed&  ed'< 	 eed(< 	 ee ed)< 	 ee ed*< 	 ee ed+< 	 eed,< 	 eed-  ed.< 	 eed/< eed0  ed1< 	 eed2< 	 ee ed3< 	 ee ed4< 	 ed ed5< 	 eed6  ed7< 	 ed8 ed9< 	 eed:< eed;  ed<< 	 eed=< eed>  ed?< 	 eed@  edA< 	 eedB< ee edC< 	 ededDedE dFd fdGdHZeededDedE dFd fdIdJZedDedE dFd fdKdJZe dLdDedE dFd fdMdJZededDedE dFd fdNdOZ!eededDedE dFd fdPdQZ"edDedE dFd fdRdQZ"e dSdDedE dFd fdTdQZ"ededDedU dFd fdVdWZ#eededDedU dFd fdXdYZ$edDedU dFd fdZdYZ$e d[dDedU dFd fd\dYZ$ededDedU dFd fd]d^Z%eededDedU dFd fd_d`Z&edDedU dFd fdad`Z&e dbdDedU dFd fdcd`Z&edDedd dFd fdedfZ'edDedd dFd fdgdhZ(ededDedi dFd fdjdkZ)eededDedi dFd fdldmZ*edDedi dFd fdndmZ*e dodDedi dFd fdpdmZ*ededDedi dFd fdqdrZ+eededDedi dFd fdsdtZ,edDedi dFd fdudtZ,e dvdDedi dFd fdwdtZ,edDedx dFed  fdydzZ-edDedx dFed  fd{d|Z.ededDed} dFed0 fd~dZ/eededDed} dFed0 fddZ0edDed} dFed0 fddZ0e ddDed} dFed0 fddZ0ededDed} dFed0 fddZ1eededDed} dFed0 fddZ2edDed} dFed0 fddZ2e ddDed} dFed0 fddZ2ededDed dFed0 fddZ3eededDed dFed0 fddZ4edDed dFed0 fddZ4e ddDed dFed0 fddZ4ededDed dFed0 fddZ5eededDed dFed0 fddZ6edDed dFed0 fddZ6e ddDed dFed0 fddZ6ed,edDed dFd fddZ7ed,edDed dFd fddZ8ededDed dFe9fddZ:eededDed dFe9fddZ;edDed dFe9fddZ;e ddDed dFe9fddZ;ededDed dFe9fddZ<eededDed dFe9fddZ=edDed dFe9fddZ=e ddDed dFe9fddZ=ed,edDed dFd fddZ>ed,edDed dFd fddZ?e	e
eeeeeedZ@dS )Quotez
    A Quote is a way to model prices that you'd like to provide to a customer.
    Once accepted, it will automatically create an invoice, subscription or subscription schedule.
    quoteOBJECT_NAMEc                   @   s^   e Zd ZU G dd deZeed< 	 ee ed< 	 ee ed< 	 ee	d  ed< 	 deiZ
dS )	zQuote.AutomaticTaxc                   @   ,   e Zd ZU eed  ed< 	 ed ed< dS )zQuote.AutomaticTax.Liabilityr   accountr,   selftypeN__name__
__module____qualname__r   r   __annotations__r    r5   r5   r/var/www/html/finance-dev.cargoinsureonline.com/_shared/backend-venv/lib/python3.10/site-packages/stripe/_quote.py	Liability7   
   
 r7   enabled	liabilityprovider)completefailedrequires_location_inputsstatusN)r1   r2   r3   r   r7   boolr4   r   strr   _inner_class_typesr5   r5   r5   r6   AutomaticTax6   s   
 
rC   c                   @   sN   e Zd ZU G dd deZG dd deZee ed< 	 eed< eedZdS )	zQuote.Computedc                   @   sZ   e Zd ZU G dd deZeed< 	 eed< 	 ed ed< 	 eed< 	 eed< deiZd	S )
zQuote.Computed.Recurringc                   @   T   e Zd ZU G dd deZeed< 	 ee ed< 	 eed< 	 ee ed< deiZdS )z%Quote.Computed.Recurring.TotalDetailsc                   @   T   e Zd ZU G dd deZG dd deZee ed< 	 ee ed< 	 eedZdS )	z/Quote.Computed.Recurring.TotalDetails.Breakdownc                   @       e Zd ZU eed< 	 ded< dS )z8Quote.Computed.Recurring.TotalDetails.Breakdown.DiscountamountDiscountResourcediscountNr1   r2   r3   intr4   r5   r5   r5   r6   r   Y   
   
 r   c                   @   @   e Zd ZU eed< 	 ded< 	 eed  ed< 	 ee ed< dS )z3Quote.Computed.Recurring.TotalDetails.Breakdown.TaxrG   r   ratecustomer_exemptnot_collectingnot_subject_to_taxnot_supportedportion_product_exemptportion_reduced_ratedportion_standard_ratedproduct_exemptproduct_exempt_holidayproportionally_ratedreduced_ratedreverse_chargestandard_ratedtaxable_basis_reduced
zero_ratedtaxability_reasontaxable_amountNr1   r2   r3   rK   r4   r   r   r5   r5   r5   r6   Taxf      
 rb   	discountstaxesrd   re   N	r1   r2   r3   r   r   rb   r   r4   rB   r5   r5   r5   r6   	BreakdownX      
 &rh   amount_discountamount_shipping
amount_tax	breakdownN	r1   r2   r3   r   rh   rK   r4   r   rB   r5   r5   r5   r6   TotalDetailsW      
 >ro   amount_subtotalamount_total)daymonthweekyearintervalinterval_counttotal_detailsN)	r1   r2   r3   r   ro   rK   r4   r   rB   r5   r5   r5   r6   	RecurringV   s   
 Nrz   c                   @   sT   e Zd ZU G dd deZeed< 	 eed< 	 eed  ed< 	 eed< deiZ	dS )	zQuote.Computed.Upfrontc                   @   rD   )z#Quote.Computed.Upfront.TotalDetailsc                   @   rE   )	z-Quote.Computed.Upfront.TotalDetails.Breakdownc                   @   rF   )z6Quote.Computed.Upfront.TotalDetails.Breakdown.DiscountrG   rH   rI   NrJ   r5   r5   r5   r6   r      rL   r   c                   @   rM   )z1Quote.Computed.Upfront.TotalDetails.Breakdown.TaxrG   r   rN   rO   r_   r`   Nra   r5   r5   r5   r6   rb      rc   rb   rd   re   rf   Nrg   r5   r5   r5   r6   rh      ri   rh   rj   rk   rl   rm   Nrn   r5   r5   r5   r6   ro      rp   ro   rq   rr   r   
line_itemsry   N)
r1   r2   r3   r   ro   rK   r4   r   r   rB   r5   r5   r5   r6   Upfront   s   
 Nr|   	recurringupfront)r}   r~   N)	r1   r2   r3   r   rz   r|   r   r4   rB   r5   r5   r5   r6   ComputedU   s   
 b^r   c                   @   s$   e Zd ZU eed< 	 ed ed< dS )zQuote.FromQuoteis_revisionr(   r)   N)r1   r2   r3   r@   r4   r   r5   r5   r5   r6   	FromQuote  s
   
 r   c                   @   s<   e Zd ZU G dd deZee ed< 	 eed< deiZdS )zQuote.InvoiceSettingsc                   @   r+   )zQuote.InvoiceSettings.Issuerr   r,   r-   r/   Nr0   r5   r5   r5   r6   Issuer(  r8   r   days_until_dueissuerN)	r1   r2   r3   r   r   r   rK   r4   rB   r5   r5   r5   r6   InvoiceSettings'  s   
 
r   c                   @   s6   e Zd ZU ee ed< 	 ee ed< 	 ee ed< dS )zQuote.StatusTransitionsaccepted_atcanceled_atfinalized_atN)r1   r2   r3   r   rK   r4   r5   r5   r5   r6   StatusTransitions9     
 r   c                   @   sl   e Zd ZU G dd deZeed< 	 ee ed< 	 ee ed< 	 ee	e  ed< 	 ee ed< 	 deiZ
dS )	zQuote.SubscriptionDatac                   @   s@   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"Quote.SubscriptionData.BillingModec                   @   s   e Zd ZU eed  ed< dS )z+Quote.SubscriptionData.BillingMode.Flexible)includeditemizedproration_discountsN)r1   r2   r3   r   r   r4   r5   r5   r5   r6   FlexibleI  s   
 r   flexible)classicr   r/   N)	r1   r2   r3   r   r   r   r4   r   rB   r5   r5   r5   r6   BillingModeH  s   
 r   billing_modedescriptioneffective_datemetadatatrial_period_daysN)r1   r2   r3   r   r   r4   r   rA   rK   r   rB   r5   r5   r5   r6   SubscriptionDataG  s   
 r   c                   @   rD   )zQuote.TotalDetailsc                   @   rE   )	zQuote.TotalDetails.Breakdownc                   @   rF   )z%Quote.TotalDetails.Breakdown.DiscountrG   rH   rI   NrJ   r5   r5   r5   r6   r   n  rL   r   c                   @   rM   )z Quote.TotalDetails.Breakdown.TaxrG   r   rN   rO   r_   r`   Nra   r5   r5   r5   r6   rb   {  rc   rb   rd   re   rf   Nrg   r5   r5   r5   r6   rh   m  ri   rh   rj   rk   rl   rm   Nrn   r5   r5   r5   r6   ro   l  rp   ro   c                   @   s6   e Zd ZU ee ed< 	 ee ed< 	 ed ed< dS )zQuote.TransferDatarG   amount_percentr   destinationN)r1   r2   r3   r   rK   r4   floatr   r5   r5   r5   r6   TransferData  r   r   rq   rr   r   applicationapplication_fee_amountapplication_fee_percentautomatic_tax)charge_automaticallysend_invoicecollection_methodcomputedcreatedcurrencyr   customercustomer_accountr   default_tax_ratesr   rH   rd   
expires_atfooter
from_quoteheaderidr   invoiceinvoice_settingsr   r{   livemoder   numberobjectr   on_behalf_of)acceptedcanceleddraftopenr?   status_transitionsr   subscriptionsubscription_datar   subscription_scheduler'   
test_clockry   transfer_dataparamsr   returnc                 K   "   t d| jddjt|d|dS ).
        Accepts the specified quote.
        r(   post/v1/quotes/{quote}/acceptr)   r   r   _static_requestformatr
   clsr)   r   r5   r5   r6   _cls_acceptG     zQuote._cls_acceptc                 K      dS r   Nr5   r)   r   r5   r5   r6   acceptW     zQuote.acceptc                 K   r   r   r5   r.   r   r5   r5   r6   r   _     r   c              	   K   *   t d| jddjt| jdd|dS )r   r(   r   r   r   r   r   r   _requestr   r
   _datagetr   r5   r5   r6   r   f     c                    *   t d| jddjt|d|dI dH S )r   r(   r   r   r   r   Nr   _static_request_asyncr   r
   r   r5   r5   r6   _cls_accept_asyncx     
zQuote._cls_accept_asyncc                       dS r   r5   r   r5   r5   r6   accept_async     zQuote.accept_asyncc                    r   r   r5   r   r5   r5   r6   r        r   c              	      2   t d| jddjt| jdd|dI dH S )r   r(   r   r   r   r   r   Nr   _request_asyncr   r
   r   r   r   r5   r5   r6   r        
r   c                 K   r   )$
        Cancels the quote.
        r(   r   /v1/quotes/{quote}/cancelr   r   r   r   r5   r5   r6   _cls_cancel  r   zQuote._cls_cancelc                 K   r   r   Nr5   r   r5   r5   r6   cancel  r   zQuote.cancelc                 K   r   r   r5   r   r5   r5   r6   r     r   r   c              	   K   r   )r   r(   r   r   r   r   r   r   r   r5   r5   r6   r     r   c                    r   )r   r(   r   r   r   r   Nr   r   r5   r5   r6   _cls_cancel_async  r   zQuote._cls_cancel_asyncc                    r   r   r5   r   r5   r5   r6   cancel_async  r   zQuote.cancel_asyncc                    r   r   r5   r   r5   r5   r6   r     r   r   c              	      r   )r   r(   r   r   r   r   r   Nr   r   r5   r5   r6   r     r   r   c                 K   s   t d| jd|  |dS )
        A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the [quote template](https://dashboard.stripe.com/settings/billing/quote).
        r(   r   r   )r   r   	class_urlr   r   r5   r5   r6   create  s   zQuote.createc                    s"   t d| jd|  |dI dH S )r   r(   r   r   N)r   r   r   r   r5   r5   r6   create_async!  s   
zQuote.create_asyncr    c                 K   r   )&
        Finalizes the quote.
        r(   r   /v1/quotes/{quote}/finalizer   r   r   r   r5   r5   r6   _cls_finalize_quote1  r   zQuote._cls_finalize_quotec                 K   r   r   Nr5   r   r5   r5   r6   finalize_quoteA     zQuote.finalize_quotec                 K   r   r   r5   r   r5   r5   r6   r   K     r   c              	   K   r   )r   r(   r   r   r   r   r   r   r   r5   r5   r6   r   T  r   c                    r   )r   r(   r   r   r   r   Nr   r   r5   r5   r6   _cls_finalize_quote_asyncf  r   zQuote._cls_finalize_quote_asyncc                    r   r   r5   r   r5   r5   r6   finalize_quote_asyncv  r   zQuote.finalize_quote_asyncc                    r   r   r5   r   r5   r5   r6   r     r   r   c              	      r   )r   r(   r   r   r   r   r   Nr   r   r5   r5   r6   r     r   r#   c                 K   s4   | j d|  |d}t|tstdt|j |S )0
        Returns a list of your quotes.
        r   r   %Expected list object from API, got %s)r   r   
isinstancer   	TypeErrorr/   r1   r   r   resultr5   r5   r6   list  s   
z
Quote.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r   r   r   Nr   )r   r   r   r   r   r/   r1   r   r5   r5   r6   
list_async  s   
zQuote.list_asyncr!   c                 K   &   t td | jddjt|d|dS )E  
        When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items.
        r   r   ./v1/quotes/{quote}/computed_upfront_line_itemsr   r   r   r   r   r   r
   r   r5   r5   r6   %_cls_list_computed_upfront_line_items  s   	z+Quote._cls_list_computed_upfront_line_itemsc                 K   r   r  Nr5   r   r5   r5   r6    list_computed_upfront_line_items  r   z&Quote.list_computed_upfront_line_itemsc                 K   r   r	  r5   r   r5   r5   r6   r
    r   r  c              	   K   .   t td | jddjt| jdd|dS )r  r   r   r  r   r   r   r   r   r   r   r
   r   r   r   r5   r5   r6   r
       c                    .   t td | jddjt|d|dI dH S )r  r   r   r  r   r   Nr   r   r   r   r
   r   r5   r5   r6   +_cls_list_computed_upfront_line_items_async  s   	
z1Quote._cls_list_computed_upfront_line_items_asyncc                    r   r	  r5   r   r5   r5   r6   &list_computed_upfront_line_items_async  r   z,Quote.list_computed_upfront_line_items_asyncc                    r   r	  r5   r   r5   r5   r6   r    r   r  c              	      6   t td | jddjt| jdd|dI dH S )r  r   r   r  r   r   r   Nr   r   r   r   r
   r   r   r   r5   r5   r6   r  !     
r"   c                 K   r  )
        When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.
        r   r   /v1/quotes/{quote}/line_itemsr   r   r  r   r5   r5   r6   _cls_list_line_items3  s   zQuote._cls_list_line_itemsc                 K   r   r  Nr5   r   r5   r5   r6   list_line_itemsE  r   zQuote.list_line_itemsc                 K   r   r  r5   r   r5   r5   r6   r  O  r   r  c              	   K   r  )r  r   r   r  r   r   r   r  r   r5   r5   r6   r  X  r  c                    r  )r  r   r   r  r   r   Nr  r   r5   r5   r6   _cls_list_line_items_asyncj  s   
z Quote._cls_list_line_items_asyncc                    r   r  r5   r   r5   r5   r6   list_line_items_async|  r   zQuote.list_line_items_asyncc                    r   r  r5   r   r5   r5   r6   r    r   r  c              	      r  )r  r   r   r  r   r   r   Nr  r   r5   r5   r6   r    r  r$   c                 K   s*   d|   t|f }td| jd||dS )D
        A quote models prices and services for a customer.
        %s/%sr(   r   r   )r   r
   r   r   r   r   r   urlr5   r5   r6   modify  s   zQuote.modifyc                    s2   d|   t|f }td| jd||dI dH S )r  r  r(   r   r   N)r   r
   r   r   r  r5   r5   r6   modify_async  s   
zQuote.modify_asyncr%   c                 K   s$   t t| jddjt|d|ddS )
        Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf)
        r   /v1/quotes/{quote}/pdfr   filesr   base_address)r   r   _static_request_streamr   r
   r   r5   r5   r6   _cls_pdf  s   zQuote._cls_pdfc                 K   r   r"  Nr5   r   r5   r5   r6   pdf  r   z	Quote.pdfc                 K   r   r)  r5   r   r5   r5   r6   r*    r   r(  c              	   K   s,   t t| jddjt| jdd|ddS )r"  r   r#  r   r   r$  r%  )r   r   _request_streamr   r
   r   r   r   r5   r5   r6   r*    s   c                    s,   t t| jddjt|d|ddI dH S )r"  r   r#  r   r$  r%  N)r   r   _static_request_stream_asyncr   r
   r   r5   r5   r6   _cls_pdf_async  s   
zQuote._cls_pdf_asyncc                    r   r)  r5   r   r5   r5   r6   	pdf_async  s   zQuote.pdf_asyncc                    r   r)  r5   r   r5   r5   r6   r.    s   r-  c              	      s4   t t| jddjt| jdd|ddI dH S )r"  r   r#  r   r   r$  r%  N)r   r   _request_stream_asyncr   r
   r   r   r   r5   r5   r6   r.    s   
r&   c                 K   s   | |fi |}|   |S )8
        Retrieves the quote with the given ID.
        )refreshr   r   r   instancer5   r5   r6   retrieve%  s   zQuote.retrievec                    s$   | |fi |}|  I dH  |S )r0  N)refresh_asyncr2  r5   r5   r6   retrieve_async0  s   zQuote.retrieve_async)r   r   r   r   r   r   ry   r   N)Ar1   r2   r3   __doc__r*   r   r   r4   r   rC   r   r   r   r   r   ro   r   rK   r   r   r   rA   r   r   r@   r   classmethodr   r   r   staticmethodr   r	   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r
  r  r  r  r  r  r  r   r!  r   r(  r*  r-  r.  r4  r6  rB   r5   r5   r5   r6   r(   *   s^  
  I
%N

r(   N)Estripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   r   stripe._updateable_api_resourcer   stripe._utilr	   r
   typingr   r   r   r   r   r   typing_extensionsr   r   r   stripe._accountr   stripe._applicationr   stripe._customerr   stripe._discountr   rH   stripe._invoicer   stripe._line_itemr   stripe._subscriptionr   stripe._subscription_scheduler   stripe._tax_rater   "stripe.params._quote_accept_paramsr   "stripe.params._quote_cancel_paramsr   "stripe.params._quote_create_paramsr   *stripe.params._quote_finalize_quote_paramsr    <stripe.params._quote_list_computed_upfront_line_items_paramsr!   +stripe.params._quote_list_line_items_paramsr"    stripe.params._quote_list_paramsr#   "stripe.params._quote_modify_paramsr$   stripe.params._quote_pdf_paramsr%   $stripe.params._quote_retrieve_paramsr&   stripe.test_helpers._test_clockr'   r(   r5   r5   r5   r6   <module>   sF    
