o
    Biy,                     @   sx   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	 d	eZd
S )    )
ListObject)RequestOptions)StripeService)sanitize_id)Location)DictListcast)LiteralNotRequired	TypedDictc                	   @   s  e Zd 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
i i fdedddedefddZi i fdedddedefddZi i fdedddedefddZi i fdedddedefddZi i fdedddedefddZi i fdedddedefd d!Zi i fdd"dedee fd#d$Zi i fdd"dedee fd%d&Zi fdd'dedefd(d)Zi fdd'dedefd*d+Zd,S )-LocationServicec                   @   sN   e Zd ZU ded< 	 ee ed< 	 eed< 	 eee  ed< 	 ed ed< dS )	LocationService.CreateParams#LocationService.CreateParamsAddressaddressconfiguration_overridesdisplay_nameexpandLiteral['']|Dict[str, str]metadataN)__name__
__module____qualname____annotations__r   strr    r   r   a/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/terminal/_location_service.pyCreateParams   s   
 r   c                   @   s\   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 )r   citycountryline1line2postal_codestateNr   r   r   r   r   r   r   r   r   r   CreateParamsAddress#   s   
 r%   c                   @   s   e Zd ZdS )LocationService.DeleteParamsN)r   r   r   r   r   r   r   DeleteParams=   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 )LocationService.ListParamsending_beforer   limitstarting_afterN)r   r   r   r   r   r   r   intr   r   r   r   
ListParams@   s   
 r-   c                   @   s   e Zd ZU eee  ed< dS )LocationService.RetrieveParamsr   N)r   r   r   r   r   r   r   r   r   r   r   RetrieveParamsR   s   
 r/   c                   @   sV   e Zd ZU ed ed< 	 ed ed< 	 ee ed< 	 eee  ed< 	 ed ed< d	S )
LocationService.UpdateParams#LocationService.UpdateParamsAddressr   zLiteral['']|strr   r   r   r   r   N)r   r   r   r   r   r   r   r   r   r   r   UpdateParamsX   s   
 r2   c                   @   s`   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 )r1   r   r   r    r!   r"   r#   Nr$   r   r   r   r   UpdateParamsAddressn   s   
 r3   locationparamsr&   optionsreturnc              	   C   &   t t| jddjt|dd||dS ),
        Deletes a Location object.
        delete!/v1/terminal/locations/{location}r4   apibase_addressr5   r6   r	   r   _requestformatr   selfr4   r5   r6   r   r   r   r:         	zLocationService.deletec              	      .   t t| jddjt|dd||dI dH S )r9   r:   r;   r<   r=   r>   Nr	   r   _request_asyncrB   r   rC   r   r   r   delete_async      	
zLocationService.delete_asyncr.   c              	   C   r8   ).
        Retrieves a Location object.
        getr;   r<   r=   r>   r@   rC   r   r   r   retrieve   rE   zLocationService.retrievec              	      rF   )rK   rL   r;   r<   r=   r>   NrG   rC   r   r   r   retrieve_async   rJ   zLocationService.retrieve_asyncr0   c              	   C   r8   )
        Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
        postr;   r<   r=   r>   r@   rC   r   r   r   update   rE   zLocationService.updatec              	      rF   )rO   rP   r;   r<   r=   r>   NrG   rC   r   r   r   update_async   rJ   zLocationService.update_asyncr(   c              	   C   s   t tt | jddd||dS )5
        Returns a list of Location objects.
        rL   /v1/terminal/locationsr=   r>   )r	   r   r   rA   rD   r5   r6   r   r   r   list  s   zLocationService.listc              	      s&   t tt | jddd||dI dH S )rS   rL   rT   r=   r>   N)r	   r   r   rH   rU   r   r   r   
list_async  s   
zLocationService.list_asyncr   c              	   C   s   t t| jddd||dS )
        Creates a new Location object.
        For further details, including which address fields are required in each country, see the [Manage locations](https://stripe.com/docs/terminal/fleet/locations) guide.
        rP   rT   r=   r>   )r	   r   rA   rU   r   r   r   create2  s   	zLocationService.createc              	      s"   t t| jddd||dI dH S )rX   rP   rT   r=   r>   N)r	   r   rH   rU   r   r   r   create_asyncF  s   	
zLocationService.create_asyncN)r   r   r   r   r   r%   r'   r-   r/   r2   r3   r   r   r   r:   rI   rM   rN   rQ   rR   r   rV   rW   rY   rZ   r   r   r   r   r      s    








r   N)stripe._list_objectr   stripe._request_optionsr   stripe._stripe_servicer   stripe._utilr   stripe.terminal._locationr   typingr   r   r	   typing_extensionsr
   r   r   r   r   r   r   r   <module>   s   