o
    Bi                     @   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
mZmZ d dlmZmZmZmZ G dd ded ed Zd	S )
    )RequestOptions)SingletonAPIResource)StripeObject)UpdateableAPIResource)ClassVarListOptionalcast)LiteralNotRequired	TypedDictUnpackc                   @   sj  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
 ed< 	 eed< 	 ed ed< 	 ed ed< 	 eed< eded dd fddZeded dd fd d!Zeded" dd fd#d$Zeded" dd fd%d&Zed'd( Ze	e
ed)Zd*S )+Settingsz
    You can use Tax `Settings` to manage configurations used by Stripe Tax calculations.

    Related guide: [Using the Settings API](https://stripe.com/docs/tax/settings-api)
    ztax.settingsOBJECT_NAMEc                   @   ,   e Zd ZU eed  ed< 	 ee ed< dS )zSettings.Defaults	exclusive	inclusiveinferred_by_currencytax_behaviortax_codeN)__name__
__module____qualname__r   r
   __annotations__str r   r   T/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/tax/_settings.pyDefaults      
 r   c                   @   s.   e Zd ZU G dd deZeed< deiZdS )zSettings.HeadOfficec                   @   `   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )zSettings.HeadOffice.Addresscitycountryline1line2postal_codestateN)r   r   r   r   r   r   r   r   r   r   Address$      
 r'   addressN)r   r   r   r   r'   r   _inner_class_typesr   r   r   r   
HeadOffice#   s   
 r+   c                   @   sP   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Settings.StatusDetailsc                   @   s   e Zd ZdS )zSettings.StatusDetails.ActiveN)r   r   r   r   r   r   r   ActiveB   s    r,   c                   @      e Zd ZU eee  ed< dS )zSettings.StatusDetails.Pendingmissing_fieldsN)r   r   r   r   r   r   r   r   r   r   r   PendingE      
 r/   activependingr1   r2   N)	r   r   r   r   r,   r/   r   r   r*   r   r   r   r   StatusDetailsA   s   
 r4   c                   @   s:   e Zd ZU ed ed< 	 eee  ed< 	 ed ed< dS )Settings.ModifyParamsSettings.ModifyParamsDefaultsdefaultsexpandSettings.ModifyParamsHeadOfficehead_officeN)r   r   r   r   r   r   r   r   r   r   r   ModifyParamsO   s   
 r;   c                   @   r   )r6   r   r   r   N)r   r   r   r   r
   r   r   r   r   r   r   ModifyParamsDefaults]   r   r<   c                   @   s   e Zd ZU ded< dS )r9   &Settings.ModifyParamsHeadOfficeAddressr)   N)r   r   r   r   r   r   r   r   ModifyParamsHeadOfficei   s   
 r>   c                   @   r    )r=   r!   r"   r#   r$   r%   r&   N)r   r   r   r   r   r   r   r   r   r   ModifyParamsHeadOfficeAddresso   r(   r?   c                   @   r-   )Settings.RetrieveParamsr8   N)r   r   r   r   r   r   r   r   r   r   r   RetrieveParams   r0   rA   r7   r:   livemodeobjectr3   statusstatus_detailsparamsr5   returnc                 K   s   t d| jd|  |dS )
        Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set.
        r   postrF   )r	   _static_request	class_urlclsrF   r   r   r   modify   s   zSettings.modifyc                    s"   t d| jd|  |dI dH S )rH   r   rI   rJ   N)r	   _static_request_asyncrL   rM   r   r   r   modify_async   s   
zSettings.modify_asyncr@   c                 K   s   | di |}|   |S z8
        Retrieves Tax Settings for a merchant.
        N)N)refreshrN   rF   instancer   r   r   retrieve   s   zSettings.retrievec                    s"   | di |}|  I dH  |S rR   )refresh_asyncrT   r   r   r   retrieve_async   s   zSettings.retrieve_asyncc                 C   s   dS )Nz/v1/tax/settingsr   )rN   r   r   r   rL      s   zSettings.class_url)r7   r:   rE   N)r   r   r   __doc__r   r   r
   r   r   r   r+   r4   r   r;   r   r<   r>   r?   rA   r   boolclassmethodr   rO   rQ   rV   rX   rL   r*   r   r   r   r   r      s^   
 



r   N)stripe._request_optionsr   stripe._singleton_api_resourcer   stripe._stripe_objectr   stripe._updateable_api_resourcer   typingr   r   r   r	   typing_extensionsr
   r   r   r   r   r   r   r   r   <module>   s   
