
    +h              	       J   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r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+  G d ded   ed   ed   ed         Z,e,e,jZ                  _.        y)    )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                   	   e Zd ZU dZdZeed      ed<    G d de      Z	e
r G d de      Z G d d	e      Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d  d!e      Z G d" d#e      Z G d$ d%e      Z G d& d'e      Z G 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$	 	 	 drd;e d<ee    d=ee    d>ee    d?e%d@   dAd fdB       Z&e'e(	 	 	 drd;e d<ee    d=ee    d>ee    d?e%d@   dAd fdC              Z)e'	 dsdDee    d?e%d@   dAd fdE       Z) e*dF      	 dsdDee    d?e%d@   dAd fdG       Z)e$	 	 	 	 dtd<ee    dDee    d=ee    d>ee    d?e%dH   dAd fdI       Z+e$dJe d?e%dK   dAd fdL       Z,e'e(dJe d?e%dK   dAd fdM              Z-e'd?e%dK   dAd fdN       Z- e*dO      d?e%dK   dAd fdP       Z-e$	 	 	 drd<ee    d=ee    d>ee    d?e%dQ   dAe.d    f
dR       Z/e$d.e d?e%dS   dAd fdT       Z0e$	 	 	 drd;e d<ee    d=ee    d>ee    d?e%dU   dAd fdV       Z1e'e(	 	 	 drd;e d<ee    d=ee    d>ee    d?e%dU   dAd fdW              Z2e'	 dsdDee    d?e%dU   dAd fdX       Z2 e*dY      	 dsdDee    d?e%dU   dAd fdZ       Z2e$	 	 	 drd;e d<ee    d=ee    d>ee    d?e%d[   dAd fd\       Z3e'e(	 	 	 drd;e d<ee    d=ee    d>ee    d?e%d[   dAd fd]              Z4e'	 dsdDee    d?e%d[   dAd fd^       Z4 e*d_      	 dsdDee    d?e%d[   dAd fd`       Z4e$	 	 	 drd;e d<ee    d=ee    d>ee    d?e%da   dAd fdb       Z5e'e(	 	 	 drd;e d<ee    d=ee    d>ee    d?e%da   dAd fdc              Z6e'	 dsdDee    d?e%da   dAd fdd       Z6 e*de      	 dsdDee    d?e%da   dAd fdf       Z6e$d.e d?e%dg   dAd fdh       Z7e$	 	 	 drd;e d<ee    d=ee    d>ee    d?e%di   dAd fdj       Z8e'e(	 	 	 drd;e d<ee    d=ee    d>ee    d?e%di   dAd fdk              Z9e'	 dsdDee    d?e%di   dAd fdl       Z9 e*dm      	 dsdDee    d?e%di   dAd fdn       Z9 G do dpe:d          Z;e<dq        Z=d*e	iZ>y:)u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                      e Zd ZU  G d de      Z G d de      Z G d de      Z G 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y)Reader.Actionc                   P    e Zd ZU  G d de      Zed   ed<   	 ee   ed<   	 deiZy)"Reader.Action.ProcessPaymentIntentc                   P    e Zd ZU  G d de      Zee   ed<   	 ee   ed<   	 deiZy)0Reader.Action.ProcessPaymentIntent.ProcessConfigc                       e Zd ZU ee   ed<   y)8Reader.Action.ProcessPaymentIntent.ProcessConfig.Tippingamount_eligibleN)__name__
__module____qualname__r   int__annotations__     W/var/www/html/venv/lib/python3.12/site-packages/stripe/api_resources/terminal/reader.pyTippingr*   4   s    %-c]2r2   r4   skip_tippingtippingN)	r,   r-   r.   r   r4   r   boolr0   _inner_class_typesr1   r2   r3   ProcessConfigr(   3   s>    l  'tn, "'** '0%9"r2   r9   r   payment_intentprocess_configN)	r,   r-   r.   r   r9   r	   r0   r   r8   r1   r2   r3   ProcessPaymentIntentr&   2   s?    : :" ,O<< %]33 #3M!Br2   r<   c                   b    e Zd ZU  G d de      Zee   ed<   	 ee   ed<   	 ed   ed<   	 deiZ	y) Reader.Action.ProcessSetupIntentc                       e Zd Zy).Reader.Action.ProcessSetupIntent.ProcessConfigNr,   r-   r.   r1   r2   r3   r9   r@   O   s    r2   r9   generated_cardr;   r   setup_intentN)
r,   r-   r.   r   r9   r   strr0   r	   r8   r1   r2   r3   ProcessSetupIntentr>   N   sP      %SM) %]33 *-88 #3M!Br2   rE   c                       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<   y)Reader.Action.RefundPaymentamountr   chargemetadatar   r:   )	duplicate
fraudulentrequested_by_customerreasonr   refundrefund_application_feereverse_transferN)r,   r-   r.   r   r/   r0   r	   r   rD   r   r7   r1   r2   r3   RefundPaymentrG   `   s    SM! _X677 tCH~.. %__%EFF JK  _X677 %-TN2 'tn,r2   rR   c                   P    e Zd ZU  G d de      Zee   ed<   	 ed   ed<   	 deiZy)Reader.Action.SetReaderDisplayc                   h    e Zd ZU  G d de      Zeed<   	 ee   ed<   	 ee	   ed<   	 e	ed<   	 deiZ
y)#Reader.Action.SetReaderDisplay.Cartc                   0    e Zd ZU eed<   	 eed<   	 eed<   y),Reader.Action.SetReaderDisplay.Cart.LineItemrH   descriptionquantityNr,   r-   r.   r/   r0   rD   r1   r2   r3   LineItemrX      s%    K "%$ "Mr2   r\   currency
line_itemstaxtotalN)r,   r-   r.   r   r\   rD   r0   r   r   r/   r8   r1   r2   r3   CartrV      sU    |   !N* c]" 
 '3H%="r2   ra   carttypeN)	r,   r-   r.   r   ra   r   r0   r   r8   r1   r2   r3   SetReaderDisplayrT      s=    >| >B 4.  &/! #)$r2   rd   failure_codefailure_messageprocess_payment_intentprocess_setup_intentrefund_paymentset_reader_display)failedin_progress	succeededstatus)rg   rh   ri   rj   rc   N)r,   r-   r.   r   r<   rE   rR   rd   r   rD   r0   r   r8   r1   r2   r3   Actionr$   1   s    	C< 	C8	C 	C$"	L "	H*	0| *	0X sm#	 "#&	 !))= >>	 ''9::	 !//	 %%566	 <==	 "
 	
	 ';$6+"2	
r2   ro   c                       e Zd ZU ed   ed<   y)Reader.CancelActionParams	List[str]expandNr,   r-   r.   r   r0   r1   r2   r3   CancelActionParamsrq          ,,r2   ru   c                   `    e Zd ZU ed   ed<   	 ed   ed<   	 ed   ed<   	 ed   ed<   	 eed<   y	)
Reader.CreateParamsrr   rs   rD   labellocationLiteral['']|Dict[str, str]rJ   registration_codeNr,   r-   r.   r   r0   rD   r1   r2   r3   CreateParamsrx      sV    ,, u%% "%(( "">??  #"r2   r~   c                       e Zd Zy)Reader.DeleteParamsNrA   r1   r2   r3   DeleteParamsr          r2   r   c                       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<   y)Reader.ListParamsztLiteral['bbpos_chipper2x', 'bbpos_wisepad3', 'bbpos_wisepos_e', 'simulated_wisepos_e', 'stripe_m2', 'verifone_P400']device_typerD   ending_beforerr   rs   r/   limitrz   serial_numberstarting_afterzLiteral['offline', 'online']rn   Nrt   r1   r2   r3   
ListParamsr      s    $ G  'u--  ,, u%% "%(( 'u-- (..   >??r2   r   c                   B    e Zd ZU ed   ed<   	 ed   ed<   	 ed   ed<   y)Reader.ModifyParamsrr   rs   zLiteral['']|strry   r{   rJ   Nrt   r1   r2   r3   ModifyParamsr   !  s8    ,, 011 "">??r2   r   c                   <    e Zd ZU ed   ed<   	 eed<   	 ed   ed<   y)!Reader.ProcessPaymentIntentParamsrr   rs   r:   .Reader.ProcessPaymentIntentParamsProcessConfigr;   Nr}   r1   r2   r3   ProcessPaymentIntentParamsr   /  s6    ,,   (@ r2   r   c                   0    e Zd ZU ed   ed<   	 ed   ed<   y)r   r7   r5   5Reader.ProcessPaymentIntentParamsProcessConfigTippingr6   Nrt   r1   r2   r3   'ProcessPaymentIntentParamsProcessConfigz.Reader.ProcessPaymentIntentParamsProcessConfig?  s)    %f-- !G r2   r   c                       e Zd ZU ed   ed<   y)r   r/   r+   Nrt   r1   r2   r3   .ProcessPaymentIntentParamsProcessConfigTippingz5Reader.ProcessPaymentIntentParamsProcessConfigTippingK  s    (//r2   r   c                   H    e Zd ZU eed<   	 ed   ed<   	 ed   ed<   	 eed<   y)Reader.ProcessSetupIntentParamscustomer_consent_collectedrr   rs   ,Reader.ProcessSetupIntentParamsProcessConfigr;   rC   N)r,   r-   r.   r7   r0   r   rD   r1   r2   r3   ProcessSetupIntentParamsr   Q  sC    (,,  ,, (>  r2   r   c                       e Zd Zy)r   NrA   r1   r2   r3   %ProcessSetupIntentParamsProcessConfigz,Reader.ProcessSetupIntentParamsProcessConfige  r   r2   r   c                       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<   y)Reader.RefundPaymentParamsr/   rH   rD   rI   rr   rs   zDict[str, str]rJ   r:   r7   rP   rQ   Nrt   r1   r2   r3   RefundPaymentParamsr   h  s    &&  &&  ,, ""233 (.. %0$77 *&11r2   r   c                       e Zd ZU ed   ed<   y)Reader.RetrieveParamsrr   rs   Nrt   r1   r2   r3   RetrieveParamsr     rv   r2   r   c                   B    e Zd ZU ed   ed<   	 ed   ed<   	 ed   ed<   y)Reader.SetReaderDisplayParams!Reader.SetReaderDisplayParamsCartrb   rr   rs   rc   N)r,   r-   r.   r   r0   r   r1   r2   r3   SetReaderDisplayParamsr     s6    ABB  ,, &/!r2   r   c                   H    e Zd ZU eed<   	 ed   ed<   	 ed   ed<   	 eed<   y)r   r]   )Reader.SetReaderDisplayParamsCartLineItemr^   r/   r_   r`   N)r,   r-   r.   rD   r0   r   r   r/   r1   r2   r3   SetReaderDisplayParamsCartz!Reader.SetReaderDisplayParamsCart  s=    M HII U## Jr2   r   c                   0    e Zd ZU eed<   	 eed<   	 eed<   y)r   rH   rY   rZ   Nr[   r1   r2   r3   "SetReaderDisplayParamsCartLineItemz)Reader.SetReaderDisplayParamsCartLineItem  s%    K  Mr2   r   c                   f    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
<   y)!Reader.PresentPaymentMethodParamsr/   
amount_tip,Reader.PresentPaymentMethodParamsCardPresentcard_presentrr   rs   /Reader.PresentPaymentMethodParamsInteracPresentinterac_presentz*Literal['card_present', 'interac_present']rc   Nrt   r1   r2   r3   PresentPaymentMethodParamsr     se    #E** &>   ,, )A  JKKr2   r   c                       e Zd ZU ed   ed<   y)r   rD   numberNrt   r1   r2   r3   (PresentPaymentMethodParamsInteracPresentz/Reader.PresentPaymentMethodParamsInteracPresent      &&r2   r   c                       e Zd ZU ed   ed<   y)r   rD   r   Nrt   r1   r2   r3   %PresentPaymentMethodParamsCardPresentz,Reader.PresentPaymentMethodParamsCardPresent  r   r2   r   actiondevice_sw_version)bbpos_chipper2xbbpos_wisepad3bbpos_wisepos_esimulated_wisepos_e	stripe_m2verifone_P400r   id
ip_addressry   livemoder   rz   rJ   objectr   rn   TdeletedNreaderapi_keystripe_versionstripe_accountparamsrq   returnc                     t        d| j                  ddj                  t        j                  |            ||||            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   s         r3   _cls_cancel_actionzReader._cls_cancel_action  sZ     =DD++F3 E   --   	
 	
r2   c                      yr   Nr1   r   r   r   r   r   s        r3   cancel_actionzReader.cancel_action6       	r2   idempotency_keyc                      yr   r1   selfr   r   s      r3   r   zReader.cancel_actionD       	r2   r   c                     t        d| j                  ddj                  t        j                  | j                  d                  ||            S )r   r!   r   r   r   r   r   r   r   _requestr   r   r   getr   s      r3   r   zReader.cancel_actionO  sZ     MM=DD++DHHTN; E  !0  

 
	
r2   rx   c                 `    t        d| j                  d| j                         |||||            S )z.
        Creates a new Reader object.
        r!   r   )r   r   	class_url)r   r   r   r   r   r   s         r3   createzReader.created  s=     
 	
r2   sidr   c                 z    | j                         dt        |      }t        d| j                  d||            S )*
        Deletes a Reader object.
        /r!   deleter   r   r   r   r   )r   r   r   urls       r3   _cls_deletezReader._cls_delete}  s=     *S/:#f=
 	
r2   c                      yr   Nr1   )r   r   s     r3   r   zReader.delete  s     	r2   c                      yr   r1   r   r   s     r3   r   zReader.delete  s    
 	r2   r   c                 F    | j                  d| j                         |      S )r   r   r   )_request_and_refreshinstance_urlr   s     r3   r   zReader.delete  s.     (( ) 
 	
r2   r   c                     | j                  d| j                         ||||      }t        |t              s!t	        dt        |      j                  z        |S )z3
        Returns a list of Reader objects.
        r   r   z%Expected list object from API, got %s)r   r   
isinstancer
   	TypeErrorrc   r,   )r   r   r   r   r   results         r3   listzReader.list  sf     $$MMO)) % 
 &*-7<((* 
 r2   r   c                 z    | j                         dt        |      }t        d| j                  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   s       r3   modifyzReader.modify  s=     *R.9F;
 	
r2   r   c                     t        d| j                  ddj                  t        j                  |            ||||            S )7
        Initiates a payment flow on a Reader.
        r!   r   4/v1/terminal/readers/{reader}/process_payment_intentr   r   r   r   s         r3   _cls_process_payment_intentz"Reader._cls_process_payment_intent  sZ     FMM++F3 N   --   	
 	
r2   c                      yr  Nr1   r   s        r3   rg   zReader.process_payment_intent  r   r2   c                      yr	  r1   r   s      r3   rg   zReader.process_payment_intent  r   r2   r  c                     t        d| j                  ddj                  t        j                  | j                  d                  ||            S )r  r!   r   r  r   r   r   r   r   s      r3   rg   zReader.process_payment_intent  sZ     MMFMM++DHHTN; N  !0  

 
	
r2   r   c                     t        d| j                  ddj                  t        j                  |            ||||            S )<
        Initiates a setup intent flow on a Reader.
        r!   r   2/v1/terminal/readers/{reader}/process_setup_intentr   r   r   r   s         r3   _cls_process_setup_intentz Reader._cls_process_setup_intent  sZ     DKK++F3 L   --   	
 	
r2   c                      yr  Nr1   r   s        r3   rh   zReader.process_setup_intent1  r   r2   c                      yr  r1   r   s      r3   rh   zReader.process_setup_intent?  r   r2   r  c                     t        d| j                  ddj                  t        j                  | j                  d                  ||            S )r  r!   r   r  r   r   r   r   r   s      r3   rh   zReader.process_setup_intentJ  sZ     MMDKK++DHHTN; L  !0  

 
	
r2   r   c                     t        d| j                  ddj                  t        j                  |            ||||            S )0
        Initiates a refund on a Reader
        r!   r   ,/v1/terminal/readers/{reader}/refund_paymentr   r   r   r   s         r3   _cls_refund_paymentzReader._cls_refund_payment_  sZ     >EE++F3 F   --   	
 	
r2   c                      yr  Nr1   r   s        r3   ri   zReader.refund_paymenty  r   r2   c                      yr  r1   r   s      r3   ri   zReader.refund_payment  r   r2   r  c                     t        d| j                  ddj                  t        j                  | j                  d                  ||            S )r  r!   r   r  r   r   r   r   r   s      r3   ri   zReader.refund_payment  sZ     MM>EE++DHHTN; F  !0  

 
	
r2   r   c                 8     | |fi |}|j                          |S )z,
        Retrieves a Reader object.
        )refresh)r   r   r   instances       r3   retrievezReader.retrieve  s$     r$V$r2   r   c                     t        d| j                  ddj                  t        j                  |            ||||            S );
        Sets reader display to show cart details.
        r!   r   0/v1/terminal/readers/{reader}/set_reader_displayr   r   r   r   s         r3   _cls_set_reader_displayzReader._cls_set_reader_display  sZ     BII++F3 J   --   	
 	
r2   c                      yr!  Nr1   r   s        r3   rj   zReader.set_reader_display  r   r2   c                      yr%  r1   r   s      r3   rj   zReader.set_reader_display  r   r2   r#  c                     t        d| j                  ddj                  t        j                  | j                  d                  ||            S )r!  r!   r   r"  r   r   r   r   r   s      r3   rj   zReader.set_reader_display  sZ     MMBII++DHHTN; J  !0  

 
	
r2   c                   $   e Zd ZU ed   ed<   e	 	 	 ddedee   dee   dee   ded	   d
dfd       Z	e
e	 	 	 ddedee   dee   dee   ded	   d
dfd              Ze
	 ddee   ded	   d
dfd       Z ed      	 ddee   ded	   d
dfd       Zy)Reader.TestHelpersr!   _resource_clsNr   r   r   r   r   r   r   c                     t        d| j                  ddj                  t        j                  |            ||||            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   s         r3   _cls_present_payment_methodz.Reader.TestHelpers._cls_present_payment_method  sZ     ##W^^#//7 _  $#1#1! $ 	 r2   c                      yr,  Nr1   r   s        r3   present_payment_methodz)Reader.TestHelpers.present_payment_method  s     r2   r   c                      yr0  r1   r   s      r3   r1  z)Reader.TestHelpers.present_payment_method%  s     r2   r.  c                     t        d| j                  j                  ddj                  t	        j
                  | j                  j                  d                  ||            S )r,  r!   r   r-  r   r   r   )r   resourcer   r   r   r   r   r   s      r3   r1  z)Reader.TestHelpers.present_payment_method0  sg     &&W^^#//0A0A$0GH _  %4! ' 
 
r2   NNNN)r,   r-   r.   r   r0   classmethodrD   r   r   r.  r   staticmethodr1  r   r1   r2   r3   TestHelpersr)    sj   H~%	 &*,0,0		 c]	 %SM		
 %SM	 @A	 	 
	2 
	 &*,0,0	
	
	c]
	 %SM
	 %SM	
	
 @A
	 
	 
 

	 
 .2	%c]	 @A	 		 
	 
;	< .2	%c]	 @A	 		 
=	r2   r9  c                 $    | j                  |       S r6  )r9  )r   s    r3   test_helperszReader.test_helpersE  s    %%r2   r5  r6  )NNNN)?r,   r-   r.   __doc__r"   r   r   r0   r   ro   r   r   ru   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD   r7   r	   r   r7  r   r   r   r8  r   r   r   r   r   r
   r  r  r  rg   r  rh   r  ri   r  r#  rj   r   r9  propertyr;  r8   r1   r2   r3   r!   r!   #   s    9JK'"345Ii
 i
V 	 		> 	,	> 	"	 "	H	> 		 	 
	i 
		Y 		~ 	(	I 		. 	<	^ 		^ 		 	$	 		 	4	y 		I 	 V  }$ 	  	G  J N z233 38n %&&  SM gdm$$  "&(,(,

 #
 !	

 !
 45
 

 
2  "&(,(,	

#
 !
 !	

 45
 

  
  *.!# 45 
	  ./ *.
!#
 45
 
	
 0
(  "&)-(,(,
#
 "#
 !	

 !
 ./
 

 
0 



!'(=!>

	

 

 C 6*?#@ X    v&;<    -(

45

	

 )

  "&(,(,	# ! !	
 ,- 
H	 6 



 &'< =

	

 

  "&(,(,

 #
 !	

 !
 <=
 

 
2  "&(,(,	

#
 !
 !	

 <=
 

  
  *.!# <= 
	  78 *.
!#
 <=
 
	
 9
(  "&(,(,

 #
 !	

 !
 :;
 

 
2  "&(,(,	

#
 !
 !	

 :;
 

  
  *.!# :; 
	  56 *.
!#
 :;
 
	
 7
(  "&(,(,

 #
 !	

 !
 56
 

 
2  "&(,(,	

#
 !
 !	

 56
 

  
  *.!# 56 
	  /0 *.
!#
 56
 
	
 1
(  &'> ?	   "&(,(,

 #
 !	

 !
 89
 

 
2  "&(,(,	

#
 !
 !	

 89
 

  
  *.!# 89 
	  34 *.
!#
 89
 
	
 5
(I,X6 IV & & #F+r2   r!   N)/striper   stripe.api_resources.abstractr   r   r   r   r   %stripe.api_resources.expandable_fieldr	    stripe.api_resources.list_objectr
   stripe.request_optionsr   stripe.stripe_objectr   stripe.utilr   typingr   r   r   r   r   r   typing_extensionsr   r   r   r   r   r   urllib.parser   stripe.api_resources.charger   #stripe.api_resources.payment_intentr   stripe.api_resources.refundr   !stripe.api_resources.setup_intentr   &stripe.api_resources.terminal.locationr   r!   r9  r*  r1   r2   r3   <module>rM     s      B 7 1 - , A A  $2A2=?f,(#"!(#	f,R! $*    r2   