a
    !f                     @   s"  d dl mZ d dlmZmZmZmZ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mZ d d
l 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+ G dd ded ed ed ed Z,e,e,j-_.dS )    )util)APIResourceTestHelpersCreateableAPIResourceDeletableAPIResourceListableAPIResourceUpdateableAPIResource)ExpandableField)
ListObject)RequestOptions)StripeObject)class_method_variant)ClassVarDictListOptionalcastoverload)LiteralNotRequiredType	TypedDictUnpackTYPE_CHECKING)
quote_plus)Charge)PaymentIntent)Refund)SetupIntent)Locationc                
   @   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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G d(d) d)eZee	 ed*< ee ed+< ed, ed-< eed.< ee ed/< eed0< e ed1< ee!d2  ed3< e"eef ed4< ed ed5< eed6< ee ed7< eed8  ed9< e#deee ee ee e$d; d d<d=d>Z%e&e'deee ee ee e$d; d d<d?d@Z(e&dee e$d; d dAdBd@Z(e)dCdee e$d; d dAdDd@Z(e#dee ee ee ee e$dE d dFdGdHZ*e#ee$dI d dJdKdLZ+e&e'ee$dI d dJdMdNZ,e&e$dI d dOdPdNZ,e)dQe$dI d dOdRdNZ,e#dee ee ee e$dS e-d  dTdUdVZ.e#ee$dW d dXdYdZZ/e#deee ee ee e$d[ d d<d\d]Z0e&e'deee ee ee e$d[ d d<d^d_Z1e&dee e$d[ d dAd`d_Z1e)dadee e$d[ d dAdbd_Z1e#deee ee ee e$dc d d<dddeZ2e&e'deee ee ee e$dc d d<dfdgZ3e&dee e$dc d dAdhdgZ3e)didee e$dc d dAdjdgZ3e#deee ee ee e$dk d d<dldmZ4e&e'deee ee ee e$dk d d<dndoZ5e&dee e$dk d dAdpdoZ5e)dqdee e$dk d dAdrdoZ5e#ee$ds d dXdtduZ6e#deee ee ee e$dv d d<dwdxZ7e&e'deee ee ee e$dv d d<dydzZ8e&dee e$dv d dAd{dzZ8e)d|dee e$dv d dAd}dzZ8G d~d de9d  Z:e;dd Z<d*e	iZ=d:S )Readerz
    A Reader represents a physical device for accepting payment details.

    Related guide: [Connecting to a reader](https://stripe.com/docs/terminal/payments/connect-reader)
    zterminal.readerOBJECT_NAMEc                   @   s   e Zd ZU 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	 e
d	< ee	 e
d
< ee e
d< ee e
d< ee e
d< ee e
d< ed e
d< ed e
d< eeeedZdS )zReader.Actionc                   @   s>   e Zd ZU G dd deZed ed< ee ed< deiZdS )z"Reader.Action.ProcessPaymentIntentc                   @   s>   e Zd ZU G dd deZee ed< ee ed< deiZdS )z0Reader.Action.ProcessPaymentIntent.ProcessConfigc                   @   s   e Zd ZU ee ed< dS )z8Reader.Action.ProcessPaymentIntent.ProcessConfig.Tippingamount_eligibleN)__name__
__module____qualname__r   int__annotations__ r'   r'   e/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/terminal/reader.pyTipping4   s   
r)   skip_tippingtippingN)	r"   r#   r$   r   r)   r   boolr&   _inner_class_typesr'   r'   r'   r(   ProcessConfig3   s   
r.   r   payment_intentprocess_configN)	r"   r#   r$   r   r.   r   r&   r   r-   r'   r'   r'   r(   ProcessPaymentIntent2   s   
r1   c                   @   sJ   e Zd ZU G dd deZee ed< ee ed< ed ed< deiZ	dS )z Reader.Action.ProcessSetupIntentc                   @   s   e Zd ZdS )z.Reader.Action.ProcessSetupIntent.ProcessConfigNr"   r#   r$   r'   r'   r'   r(   r.   O   s   r.   Zgenerated_cardr0   r   setup_intentN)
r"   r#   r$   r   r.   r   strr&   r   r-   r'   r'   r'   r(   ProcessSetupIntentN   s
   
r5   c                   @   s   e Zd ZU ee ed< eed  ed< eeeef  ed< eed  ed< ee	d  ed< eed	  ed
< ee
 ed< ee
 ed< dS )zReader.Action.RefundPaymentamountr   chargemetadatar   r/   )Z	duplicateZ
fraudulentZrequested_by_customerreasonr   Zrefundrefund_application_feereverse_transferN)r"   r#   r$   r   r%   r&   r   r   r4   r   r,   r'   r'   r'   r(   RefundPayment`   s   
r<   c                   @   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Reader.Action.SetReaderDisplayc                   @   sN   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< deiZ
dS )z#Reader.Action.SetReaderDisplay.Cartc                   @   s&   e Zd ZU eed< eed< eed< dS )z,Reader.Action.SetReaderDisplay.Cart.LineItemr6   descriptionquantityNr"   r#   r$   r%   r&   r4   r'   r'   r'   r(   LineItem   s   
r@   currency
line_itemstaxtotalN)r"   r#   r$   r   r@   r4   r&   r   r   r%   r-   r'   r'   r'   r(   Cart   s   
rE   carttypeN)	r"   r#   r$   r   rE   r   r&   r   r-   r'   r'   r'   r(   SetReaderDisplay   s   
!rH   Zfailure_codeZfailure_messageprocess_payment_intentprocess_setup_intentrefund_paymentset_reader_display)failedZin_progressZ	succeededstatus)rI   rJ   rK   rL   rG   N)r"   r#   r$   r   r1   r5   r<   rH   r   r4   r&   r   r-   r'   r'   r'   r(   Action1   s&   
$,
rO   c                   @   s   e Zd ZU ed ed< dS )Reader.CancelActionParams	List[str]expandNr"   r#   r$   r   r&   r'   r'   r'   r(   CancelActionParams   s   
rT   c                   @   sF   e Zd ZU ed ed< ed ed< ed ed< ed ed< eed< d	S )
Reader.CreateParamsrQ   rR   r4   labellocationLiteral['']|Dict[str, str]r8   Zregistration_codeNr"   r#   r$   r   r&   r4   r'   r'   r'   r(   CreateParams   s   
rZ   c                   @   s   e Zd ZdS )Reader.DeleteParamsNr2   r'   r'   r'   r(   DeleteParams   s   r\   c                   @   sn   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d ed
< ed ed< ed ed< dS )Reader.ListParamsztLiteral['bbpos_chipper2x', 'bbpos_wisepad3', 'bbpos_wisepos_e', 'simulated_wisepos_e', 'stripe_m2', 'verifone_P400']device_typer4   Zending_beforerQ   rR   r%   limitrW   serial_numberZstarting_afterzLiteral['offline', 'online']rN   NrS   r'   r'   r'   r(   
ListParams   s   
ra   c                   @   s2   e Zd ZU ed ed< ed ed< ed ed< dS )Reader.ModifyParamsrQ   rR   zLiteral['']|strrV   rX   r8   NrS   r'   r'   r'   r(   ModifyParams  s   
rc   c                   @   s.   e Zd ZU ed ed< eed< ed ed< dS )!Reader.ProcessPaymentIntentParamsrQ   rR   r/   .Reader.ProcessPaymentIntentParamsProcessConfigr0   NrY   r'   r'   r'   r(   ProcessPaymentIntentParams-  s   
rf   c                   @   s&   e Zd ZU ed ed< ed ed< dS )re   r,   r*   5Reader.ProcessPaymentIntentParamsProcessConfigTippingr+   NrS   r'   r'   r'   r(   'ProcessPaymentIntentParamsProcessConfig=  s
   
rh   c                   @   s   e Zd ZU ed ed< dS )rg   r%   r!   NrS   r'   r'   r'   r(   .ProcessPaymentIntentParamsProcessConfigTippingI  s   
ri   c                   @   s6   e Zd ZU eed< ed ed< ed ed< eed< dS )Reader.ProcessSetupIntentParamsZcustomer_consent_collectedrQ   rR   ,Reader.ProcessSetupIntentParamsProcessConfigr0   r3   N)r"   r#   r$   r,   r&   r   r4   r'   r'   r'   r(   ProcessSetupIntentParamsO  s   
rl   c                   @   s   e Zd ZdS )rk   Nr2   r'   r'   r'   r(   %ProcessSetupIntentParamsProcessConfigc  s   rm   c                   @   sb   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d
 ed< ed
 ed< dS )Reader.RefundPaymentParamsr%   r6   r4   r7   rQ   rR   zDict[str, str]r8   r/   r,   r:   r;   NrS   r'   r'   r'   r(   RefundPaymentParamsf  s   
ro   c                   @   s   e Zd ZU ed ed< dS )Reader.RetrieveParamsrQ   rR   NrS   r'   r'   r'   r(   RetrieveParams  s   
rq   c                   @   s2   e Zd ZU ed ed< ed ed< ed ed< dS )Reader.SetReaderDisplayParams!Reader.SetReaderDisplayParamsCartrF   rQ   rR   rG   N)r"   r#   r$   r   r&   r   r'   r'   r'   r(   SetReaderDisplayParams  s   
rt   c                   @   s6   e Zd ZU eed< ed ed< ed ed< eed< dS )rs   rA   )Reader.SetReaderDisplayParamsCartLineItemrB   r%   rC   rD   N)r"   r#   r$   r4   r&   r   r   r%   r'   r'   r'   r(   SetReaderDisplayParamsCart  s
   
rv   c                   @   s&   e Zd ZU eed< eed< eed< dS )ru   r6   r=   r>   Nr?   r'   r'   r'   r(   "SetReaderDisplayParamsCartLineItem  s   
rw   c                   @   sJ   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
< dS )!Reader.PresentPaymentMethodParamsr%   Z
amount_tip,Reader.PresentPaymentMethodParamsCardPresentZcard_presentrQ   rR   /Reader.PresentPaymentMethodParamsInteracPresentZinterac_presentz*Literal['card_present', 'interac_present']rG   NrS   r'   r'   r'   r(   PresentPaymentMethodParams  s   
r{   c                   @   s   e Zd ZU ed ed< dS )rz   r4   numberNrS   r'   r'   r'   r(   (PresentPaymentMethodParamsInteracPresent  s   
r}   c                   @   s   e Zd ZU ed ed< dS )ry   r4   r|   NrS   r'   r'   r'   r(   %PresentPaymentMethodParamsCardPresent  s   
r~   actionZdevice_sw_version)Zbbpos_chipper2xZbbpos_wisepad3Zbbpos_wisepos_eZsimulated_wisepos_eZ	stripe_m2Zverifone_P400r^   id
ip_addressrV   Zlivemoder   rW   r8   objectr`   rN   TZdeletedNrP   readerapi_keystripe_versionstripe_accountparamsreturnc              
   K   s*   t d| jddjt|d||||dS )4
        Cancels the current reader action.
        r   post+/v1/terminal/readers/{reader}/cancel_actionr   r   r   r   r   r   _static_requestformatr   sanitize_idclsr   r   r   r   r   r'   r'   r(   _cls_cancel_action  s    zReader._cls_cancel_actionc                 K   s   dS r   Nr'   r   r   r   r   r   r'   r'   r(   cancel_action6  s    zReader.cancel_actionidempotency_keyr   r   c                 K   s   dS r   r'   selfr   r   r'   r'   r(   r   F  s    r   c              
   K   s,   t d| jddjt| dd||dS )r   r   r   r   r   r   r   r   r   _requestr   r   r   getr   r'   r'   r(   r   S  s    rU   )r   r   r   r   r   r   c                 K   s    t d| d|  |||||S )z.
        Creates a new Reader object.
        r   r   )r   r   	class_url)r   r   r   r   r   r   r'   r'   r(   createj  s    zReader.creater[   )sidr   r   c                 K   s*   d|   t|f }td| jd||dS )*
        Deletes a Reader object.
        %s/%sr   deleter   r   r   r   r   )r   r   r   urlr'   r'   r(   _cls_delete  s
    zReader._cls_deletec                 K   s   dS r   Nr'   )r   r   r'   r'   r(   r     s    zReader.delete)r   r   c                 K   s   dS r   r'   r   r   r'   r'   r(   r     s    r   c                 K   s   | j d|  |dS )r   r   r   )Z_request_and_refreshZinstance_urlr   r'   r'   r(   r     s
    r]   )r   r   r   r   r   c                 K   s:   | j d|  ||||d}t|ts6tdt|j |S )z3
        Returns a list of Reader objects.
        r   r   z%Expected list object from API, got %s)r   r   
isinstancer	   	TypeErrorrG   r"   )r   r   r   r   r   resultr'   r'   r(   list  s    
zReader.listrb   )r   r   r   c                 K   s*   d|   t|f }td| jd||dS )z
        Updates a Reader object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
        r   r   r   r   r   )r   r   r   r   r'   r'   r(   modify  s
    zReader.modifyrd   c              
   K   s*   t d| jddjt|d||||dS )7
        Initiates a payment flow on a Reader.
        r   r   4/v1/terminal/readers/{reader}/process_payment_intentr   r   r   r   r'   r'   r(   _cls_process_payment_intent  s    z"Reader._cls_process_payment_intentc                 K   s   dS r   Nr'   r   r'   r'   r(   rI     s    zReader.process_payment_intentc                 K   s   dS r   r'   r   r'   r'   r(   rI     s    r   c              
   K   s,   t d| jddjt| dd||dS )r   r   r   r   r   r   r   r   r   r'   r'   r(   rI     s    rj   c              
   K   s*   t d| jddjt|d||||dS )<
        Initiates a setup intent flow on a Reader.
        r   r   2/v1/terminal/readers/{reader}/process_setup_intentr   r   r   r   r'   r'   r(   _cls_process_setup_intent)  s    z Reader._cls_process_setup_intentc                 K   s   dS r   Nr'   r   r'   r'   r(   rJ   E  s    zReader.process_setup_intentc                 K   s   dS r   r'   r   r'   r'   r(   rJ   U  s    r   c              
   K   s,   t d| jddjt| dd||dS )r   r   r   r   r   r   r   r   r   r'   r'   r(   rJ   b  s    rn   c              
   K   s*   t d| jddjt|d||||dS )0
        Initiates a refund on a Reader
        r   r   ,/v1/terminal/readers/{reader}/refund_paymentr   r   r   r   r'   r'   r(   _cls_refund_paymenty  s    zReader._cls_refund_paymentc                 K   s   dS r   Nr'   r   r'   r'   r(   rK     s    zReader.refund_paymentc                 K   s   dS r   r'   r   r'   r'   r(   rK     s    r   c              
   K   s,   t d| jddjt| dd||dS )r   r   r   r   r   r   r   r   r   r'   r'   r(   rK     s    rp   c                 K   s   | |fi |}|   |S )z,
        Retrieves a Reader object.
        )refresh)r   r   r   instancer'   r'   r(   retrieve  s    zReader.retrieverr   c              
   K   s*   t d| jddjt|d||||dS );
        Sets reader display to show cart details.
        r   r   0/v1/terminal/readers/{reader}/set_reader_displayr   r   r   r   r'   r'   r(   _cls_set_reader_display  s    zReader._cls_set_reader_displayc                 K   s   dS r   Nr'   r   r'   r'   r(   rL     s    zReader.set_reader_displayc                 K   s   dS r   r'   r   r'   r'   r(   rL      s    r   c              
   K   s,   t d| jddjt| dd||dS )r   r   r   r   r   r   r   r   r   r'   r'   r(   rL     s    c                
   @   s   e Zd ZU ed ed< edeee ee ee ed ddddZ	e
edeee ee ee ed dddd	Ze
dee ed dd
dd	Zeddee ed dd
dd	ZdS )zReader.TestHelpersr   _resource_clsNrx   r   c              
   K   s*   t d| jddjt|d||||dS )
            Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction.
            r   r   A/v1/test_helpers/terminal/readers/{reader}/present_payment_methodr   r   r   r   r'   r'   r(   _cls_present_payment_method'  s    z.Reader.TestHelpers._cls_present_payment_methodc                 K   s   dS r   Nr'   r   r'   r'   r(   present_payment_methodC  s    z)Reader.TestHelpers.present_payment_methodr   c                 K   s   dS r   r'   r   r'   r'   r(   r   S  s    r   c              
   K   s0   t d| jjddjt| jdd||dS )r   r   r   r   r   r   r   )r   resourcer   r   r   r   r   r   r'   r'   r(   r   `  s    )NNN)NNN)N)N)r"   r#   r$   r   r&   classmethodr4   r   r   r   r   staticmethodr   r   r'   r'   r'   r(   TestHelpers$  s`   
        r   c                 C   s
   |  | S )N)r   )r   r'   r'   r(   test_helpersw  s    zReader.test_helpers)NNN)NNN)N)N)NNNN)NNN)NNN)NNN)N)N)NNN)NNN)N)N)NNN)NNN)N)N)NNN)NNN)N)N)>r"   r#   r$   __doc__r    r   r   r&   r   rO   r
   rT   rZ   r\   ra   rc   rf   r   rh   ri   rl   rm   ro   rq   rt   rv   rw   r{   r}   r~   r   r4   r,   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   rI   r   rJ   r   rK   r   r   rL   r   r   propertyr   r-   r'   r'   r'   r(   r   #   s  
 ,$                                       
        S
r   N)/Zstriper   Zstripe.api_resources.abstractr   r   r   r   r   Z%stripe.api_resources.expandable_fieldr   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   r   urllib.parser   Zstripe.api_resources.charger   Z#stripe.api_resources.payment_intentr   Zstripe.api_resources.refundr   Z!stripe.api_resources.setup_intentr   Z&stripe.api_resources.terminal.locationr   r   r   r   r'   r'   r'   r(   <module>   s<     
        c