o
    Bif                     @   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mZmZmZmZmZ d dlmZmZmZmZmZ erFd dlmZ G d	d
 d
ed
 ZdS )    )APIResource)
ListObject)RequestOptions)StripeObject)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)TransactionLineItemc                	   @   sR  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G dd deZG dd deZeed< 	 e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ed"< 	 eed#< 	 ee
 ed$< 	 ee ed%< 	 ee ed&< 	 eed'< 	 ed( ed)< 	 ed*ed+ d,d fd-d.Zed*ed+ d,d fd/d0Zed*ed1 d,d fd2d3Zed*ed1 d,d fd4d5Z ed6ed*ed7 d,ed fd8d9Z!e"e#d6ed*ed7 d,ed fd:d;Z$e"d*ed7 d,ed fd<d;Z$e%d=d*ed7 d,ed fd>d;Z$ed6ed*ed7 d,ed fd?d@Z&e"e#d6ed*ed7 d,ed fdAdBZ'e"d*ed7 d,ed fdCdBZ'e%dDd*ed7 d,ed fdEdBZ'eded*edF d,d fdGdHZ(eded*edF d,d fdIdJZ)e	e
eedKZ*dLS )MTransactionz
    A Tax Transaction records the tax collected from or refunded to your customer.

    Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom#tax-transaction)
    ztax.transactionOBJECT_NAMEc                   @   s   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d< 	 ee	 ed< 	 e
e ed	< 	 ed
 ed< 	 eedZdS )zTransaction.CustomerDetailsc                   @   \   e Zd ZU ee ed< 	 eed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )z#Transaction.CustomerDetails.Addresscitycountryline1line2postal_codestateN__name__
__module____qualname__r   str__annotations__ r#   r#   W/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/tax/_transaction.pyAddress      
 r%   c                   @   s$   e Zd ZU ed ed< 	 eed< dS )z!Transaction.CustomerDetails.TaxId)Kad_nrtae_trnar_cuitau_abnau_arnbg_uicbh_vatbo_tinbr_cnpjbr_cpfca_bn
ca_gst_hst	ca_pst_bc	ca_pst_mb	ca_pst_skca_qstch_uidch_vatcl_tincn_tinco_nitcr_tinde_stndo_rcnec_ruceg_tines_cif
eu_oss_vateu_vatgb_vatge_vathk_brhr_oibhu_tinid_npwpil_vatin_gstis_vatjp_cnjp_rnjp_trnke_pinkr_brnkz_binli_uidmx_rfcmy_frpmy_itnmy_sstng_tinno_vatno_voecnz_gstom_vatpe_rucph_tinro_tinrs_pibru_innru_kppsa_vatsg_gstsg_uensi_tinsv_nitth_vattr_tintw_vatua_vatunknownus_einuy_rucve_rifvn_tinza_vattypevalueN)r   r   r    r   r"   r!   r#   r#   r#   r$   TaxId9   s   
 Mrt   address)billingshippingaddress_source
ip_addresstax_ids)customer_exemptnonereverse_chargetaxability_override)ru   rz   N)r   r   r    r   r%   rt   r   r"   r   r!   r
   _inner_class_typesr#   r#   r#   r$   CustomerDetails   s    
 Vr   c                   @   s   e Zd ZU ee ed< dS )zTransaction.Reversaloriginal_transactionNr   r#   r#   r#   r$   Reversal   s   
 r   c                   @   s.   e Zd ZU G dd deZeed< deiZdS )zTransaction.ShipFromDetailsc                   @   r   )z#Transaction.ShipFromDetails.Addressr   r   r   r   r   r   Nr   r#   r#   r#   r$   r%      r&   r%   ru   N)r   r   r    r   r%   r"   r   r#   r#   r#   r$   ShipFromDetails   s   
 r   c                   @   sr   e Zd ZU G dd deZeed< 	 eed< 	 ee ed< 	 e	d ed< 	 ee
e  ed< 	 eed	< 	 deiZd
S )zTransaction.ShippingCostc                   @   s~   e Zd ZU G dd deZG dd deZeed< 	 eed< ed ed< 	 e	e ed	< 	 ed
 ed< 	 eed< 	 eedZ
dS )z%Transaction.ShippingCost.TaxBreakdownc                   @   s<   e Zd ZU eed< 	 eed< 	 ed ed< 	 ee ed< dS )z2Transaction.ShippingCost.TaxBreakdown.Jurisdictionr   display_name)r   r   countydistrictr   levelr   N)r   r   r    r!   r"   r   r   r#   r#   r#   r$   Jurisdiction   s   
 r   c                   @   s.   e Zd ZU eed< 	 eed< 	 ed ed< dS )z4Transaction.ShippingCost.TaxBreakdown.TaxRateDetailsr   percentage_decimal)amusement_taxcommunications_taxgsthstigstjct	lease_taxpstqstrst	sales_taxvattax_typeN)r   r   r    r!   r"   r   r#   r#   r#   r$   TaxRateDetails   s   
 r   amountjurisdiction)destinationoriginsourcingtax_rate_details)r{   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_ratedr}   standard_ratedtaxable_basis_reduced
zero_ratedtaxability_reasontaxable_amount)r   r   N)r   r   r    r   r   r   intr"   r   r   r   r#   r#   r#   r$   TaxBreakdown   s&   
 
r   r   
amount_taxshipping_rate)	exclusive	inclusivetax_behaviortax_breakdowntax_codeN)r   r   r    r   r   r   r"   r   r!   r   r
   r   r#   r#   r#   r$   ShippingCost   s   
 Zr   c                   @   sV   e Zd ZU eed< 	 eee  ed< 	 eeeef  ed< 	 ee ed< 	 eed< dS )'Transaction.CreateFromCalculationParamscalculationexpandmetadata	posted_at	referenceN)	r   r   r    r!   r"   r   r
   r	   r   r#   r#   r#   r$   CreateFromCalculationParams@  s   
 r   c                   @   s   e Zd ZU eee  ed< 	 ee ed< 	 eed  ed< 	 eeeef  ed< 	 e	d ed< 	 eed< 	 eed	< 	 ed
 ed< dS ) Transaction.CreateReversalParamsr   flat_amount(Transaction.CreateReversalParamsLineItem
line_itemsr   )fullpartialmoder   r   ,Transaction.CreateReversalParamsShippingCostshipping_costN)
r   r   r    r   r
   r!   r"   r   r	   r   r#   r#   r#   r$   CreateReversalParamsV  s*   
 r   c                   @   sX   e Zd ZU eed< 	 eed< 	 eeeef  ed< 	 eed< 	 ee ed< 	 eed< dS )r   r   r   r   original_line_itemquantityr   N)r   r   r    r   r"   r   r	   r!   r#   r#   r#   r$   CreateReversalParamsLineItem|  s   
 r   c                   @   s    e Zd ZU eed< 	 eed< dS )r   r   r   N)r   r   r    r   r"   r#   r#   r#   r$    CreateReversalParamsShippingCost  s
   
 r   c                   @   sH   e Zd ZU ee ed< 	 eee  ed< 	 ee ed< 	 ee ed< dS )Transaction.ListLineItemsParamsending_beforer   limitstarting_afterN)r   r   r    r   r!   r"   r
   r   r#   r#   r#   r$   ListLineItemsParams  s   
 r   c                   @   s   e Zd ZU eee  ed< dS )Transaction.RetrieveParamsr   N)r   r   r    r   r
   r!   r"   r#   r#   r#   r$   RetrieveParams  s   
 r   createdcurrencycustomercustomer_detailsidr   r   livemoder   objectr   r   reversalship_from_detailsr   tax_date)r   transactionrr   paramsr   returnc                 K      t d| jdd|dS )
        Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days.
        r   post,/v1/tax/transactions/create_from_calculationr   r   _static_requestclsr   r#   r#   r$   create_from_calculation     z#Transaction.create_from_calculationc                       t d| jdd|dI dH S )r   r   r   r   r   Nr   _static_request_asyncr   r#   r#   r$   create_from_calculation_async     
z)Transaction.create_from_calculation_asyncr   c                 K   r   )O
        Partially or fully reverses a previously created Transaction.
        r   r   $/v1/tax/transactions/create_reversalr   r   r   r#   r#   r$   create_reversal  r   zTransaction.create_reversalc                    r   )r   r   r   r   r   Nr   r   r#   r#   r$   create_reversal_async&  r   z!Transaction.create_reversal_asyncr   r   c                 K   s&   t td | jddjt|d|dS )a
        Retrieves the line items of a committed standalone transaction as a collection.
        r   get-/v1/tax/transactions/{transaction}/line_itemsr   r   )r   r   r   formatr   r   r   r   r#   r#   r$   _cls_list_line_items6  s   	z Transaction._cls_list_line_itemsc                 K      dS r   Nr#   r   r   r#   r#   r$   list_line_itemsJ  s   zTransaction.list_line_itemsc                 K   r   r   r#   selfr   r#   r#   r$   r   T  s   r   c              	   K   s,   t td | jddjt| dd|dS )r   r   r   r   r   r   r   )r   r   _requestr   r   r   r   r#   r#   r$   r   ]  s   c                    s.   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   r#   r#   r$   _cls_list_line_items_asynco  s   	
z&Transaction._cls_list_line_items_asyncc                       dS r   r#   r   r#   r#   r$   list_line_items_async  s   z!Transaction.list_line_items_asyncc                    r  r   r#   r   r#   r#   r$   r    s   r  c              	      s4   t td | jddjt| dd|dI dH S )r   r   r   r   r   r   r   N)r   r   _request_asyncr   r   r   r   r#   r#   r$   r    s   
r   c                 K   s   | |fi |}|   |S )5
        Retrieves a Tax Transaction object.
        )refreshr   r   r   instancer#   r#   r$   retrieve  s   zTransaction.retrievec                    s$   | |fi |}|  I dH  |S )r  N)refresh_asyncr  r#   r#   r$   retrieve_async  s   zTransaction.retrieve_async)r   r   r   r   N)+r   r   r    __doc__r   r   r   r"   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r   r   boolr	   classmethodr   r   r   r   r   r   r   staticmethodr   r   r  r  r
  r  r   r#   r#   r#   r$   r      s(  
  
u&


r   N)stripe._api_resourcer   stripe._list_objectr   stripe._request_optionsr   stripe._stripe_objectr   stripe._utilr   r   typingr   r	   r
   r   r   r   typing_extensionsr   r   r   r   r   !stripe.tax._transaction_line_itemr   r   r#   r#   r#   r$   <module>   s    