a
    !fU                     @   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	 d dl
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rd d	lmZ G d
d ded ZdS )    )util)APIResource)
ListObject)RequestOptions)StripeObject)class_method_variant)ClassVarDictListOptionalcastoverload)LiteralNotRequired	TypedDictUnpackTYPE_CHECKING)TransactionLineItemc                
   @   s  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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
 ed!< ee ed"< eed#< ed$ ed%< ed=ee ee ee ed' d d(d)d*Zed>ee ee ee ed+ d d(d,d-Zed?eee ee ee ed. ed d/d0d1Zee d@eee ee ee ed. ed d/d2d3Z!edAee ed. ed d4d5d3Z!e"d6dBee ed. ed d4d7d3Z!eeed8 d d9d:d;Z#e	e
ed<Z$d&S )C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                   @   sx   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                   @   sR   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line2Zpostal_codestateN__name__
__module____qualname__r   str__annotations__ r!   r!   e/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/tax/transaction.pyAddress"   s   
r#   c                   @   s"   e Zd ZU ed ed< eed< dS )z!Transaction.CustomerDetails.TaxId)CZad_nrtZae_trnZar_cuitZau_abnZau_arnZbg_uicZbo_tinZbr_cnpjZbr_cpfZca_bnZ
ca_gst_hstZ	ca_pst_bcZ	ca_pst_mbZ	ca_pst_skZca_qstZch_vatZcl_tinZcn_tinZco_nitZcr_tinZdo_rcnZec_rucZeg_tinZes_cifZ
eu_oss_vatZeu_vatZgb_vatZge_vatZhk_brZhu_tinZid_npwpZil_vatZin_gstZis_vatZjp_cnZjp_rnZjp_trnZke_pinZkr_brnZli_uidZmx_rfcZmy_frpZmy_itnZmy_sstZno_vatZnz_gstZpe_rucZph_tinZro_tinZrs_pibZru_innZru_kppZsa_vatZsg_gstZsg_uenZsi_tinZsv_nitZth_vatZtr_tinZtw_vatZua_vatunknownZus_einZuy_rucZve_rifZvn_tinZza_vattypevalueN)r   r   r   r   r    r   r!   r!   r!   r"   TaxId<   s
   
Hr'   address)ZbillingZshippingZaddress_source
ip_addresstax_ids)customer_exemptnonereverse_chargeZtaxability_override)r(   r*   N)r   r   r   r   r#   r'   r   r    r   r   r
   _inner_class_typesr!   r!   r!   r"   CustomerDetails!   s   
N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   
r1   c                   @   sf   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                   @   st   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                   @   s6   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   ZcountyZdistrictr   levelr   N)r   r   r   r   r    r   r   r!   r!   r!   r"   Jurisdiction   s   
r4   c                   @   s*   e Zd ZU eed< eed< ed ed< dS )z4Transaction.ShippingCost.TaxBreakdown.TaxRateDetailsr2   Zpercentage_decimal)Zamusement_taxZcommunications_taxgstZhstZigstZjctZ	lease_taxZpstZqstrstZ	sales_taxZvatZtax_typeN)r   r   r   r   r    r   r!   r!   r!   r"   TaxRateDetails   s   
r7   amountjurisdiction)destinationoriginZsourcingtax_rate_details)r+   Znot_collectingZnot_subject_to_taxZnot_supportedZportion_product_exemptZportion_reduced_ratedZportion_standard_ratedZproduct_exemptZproduct_exempt_holidayZproportionally_ratedZreduced_ratedr-   Zstandard_ratedZtaxable_basis_reducedZ
zero_ratedZtaxability_reasonZtaxable_amount)r9   r<   N)r   r   r   r   r4   r7   intr    r   r   r.   r!   r!   r!   r"   TaxBreakdown   s   
r>   r8   
amount_taxZshipping_rate)Z	exclusiveZ	inclusiveZtax_behaviorZtax_breakdownZtax_codeN)r   r   r   r   r>   r=   r    r   r   r   r
   r.   r!   r!   r!   r"   ShippingCost   s   
Zr@   c                   @   s6   e Zd ZU eed< ed ed< ed ed< eed< dS )'Transaction.CreateFromCalculationParamsZcalculation	List[str]expandDict[str, str]metadata	referenceN)r   r   r   r   r    r   r!   r!   r!   r"   CreateFromCalculationParams  s
   
rG   c                   @   sf   e Zd ZU ed ed< ed ed< ed ed< ed ed< ed	 ed
< eed< eed< ed ed< dS ) Transaction.CreateReversalParamsrB   rC   r=   Zflat_amountz.List[Transaction.CreateReversalParamsLineItem]
line_itemsrD   rE   )fullpartialmoder0   rF   ,Transaction.CreateReversalParamsShippingCostshipping_costN)r   r   r   r   r    r   r   r!   r!   r!   r"   CreateReversalParams/  s   
rO   c                   @   s   e Zd ZU eed< eed< dS )rM   r8   r?   N)r   r   r   r=   r    r!   r!   r!   r"    CreateReversalParamsShippingCostU  s   
rP   c                   @   sF   e Zd ZU eed< eed< ed ed< eed< ed ed< eed< d	S )
z(Transaction.CreateReversalParamsLineItemr8   r?   rD   rE   Zoriginal_line_itemr=   ZquantityrF   N)r   r   r   r=   r    r   r   r!   r!   r!   r"   CreateReversalParamsLineItem_  s   
rQ   c                   @   s>   e Zd ZU ed ed< ed ed< ed ed< ed ed< dS )	Transaction.ListLineItemsParamsr   Zending_beforerB   rC   r=   limitZstarting_afterNr   r   r   r   r    r!   r!   r!   r"   ListLineItemsParamsy  s
   
rU   c                   @   s   e Zd ZU ed ed< dS )Transaction.RetrieveParamsrB   rC   NrT   r!   r!   r!   r"   RetrieveParams  s   
rW   createdcurrencyZcustomercustomer_detailsidr   rI   ZlivemoderE   objectrF   reversalrN   Ztax_date)r]   transactionr%   NrA   )api_keystripe_versionstripe_accountparamsreturnc              
   K   s   t d| jdd||||dS )z?
        Creates a Tax Transaction from a calculation.
        r   postz,/v1/tax/transactions/create_from_calculationr_   r`   ra   rb   r   _static_requestclsr_   r`   ra   rb   r!   r!   r"   create_from_calculation  s    z#Transaction.create_from_calculationrH   c              
   K   s   t d| jdd||||dS )zO
        Partially or fully reverses a previously created Transaction.
        r   rd   z$/v1/tax/transactions/create_reversalre   rf   rh   r!   r!   r"   create_reversal  s    zTransaction.create_reversalrR   )r^   r_   r`   ra   rb   rc   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^   re   )r   r   rg   formatr   sanitize_id)ri   r^   r_   r`   ra   rb   r!   r!   r"   _cls_list_line_items  s    z Transaction._cls_list_line_itemsc                 K   s   dS rl   Nr!   )r^   r_   r`   ra   rb   r!   r!   r"   list_line_items  s    zTransaction.list_line_items)idempotency_keyrb   rc   c                 K   s   dS rs   r!   selfru   rb   r!   r!   r"   rt   %  s    rr   c              
   K   s0   t td | jddjt| dd||dS )rl   r   rm   rn   r[   ro   )ru   rb   )r   r   _requestrp   r   rq   rm   rv   r!   r!   r"   rt   2  s    rV   )r[   rb   rc   c                 K   s   | |fi |}|   |S )z5
        Retrieves a Tax Transaction object.
        )refresh)ri   r[   rb   instancer!   r!   r"   retrieveI  s    zTransaction.retrieve)rZ   r]   rN   )NNN)NNN)NNN)NNN)N)N)%r   r   r   __doc__r   r   r   r    r   r/   r1   r@   r   rG   rO   r   rP   rQ   rU   rW   r=   r   r   r   boolr	   classmethodr   rj   rk   rr   r   staticmethodrt   r   r{   r.   r!   r!   r!   r"   r      s   
 u&
              r   N)Zstriper   Zstripe.api_resources.abstractr   Z stripe.api_resources.list_objectr   Zstripe.request_optionsr   Zstripe.stripe_objectr   Zstripe.utilr   typingr   r	   r
   r   r   r   Ztyping_extensionsr   r   r   r   r   Z.stripe.api_resources.tax.transaction_line_itemr   r   r!   r!   r!   r"   <module>   s    