
    _j-                        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 d dlmZmZmZmZ d dlmZmZ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                   Z dS )    )CreateableAPIResource)DeletableAPIResource)
ListObject)ListableAPIResource)StripeObject)class_method_variantsanitize_id)ClassVarOptionalcastoverload)LiteralUnpackTYPE_CHECKING)TestClockAdvanceParams)TestClockCreateParams)TestClockDeleteParams)TestClockListParams)TestClockRetrieveParamsc                      e Zd ZU dZdZeed                  ed<    G d de          Z	e
ed<   	 eed                  ed<   	 e
ed	<   	 e
ed
<   	 eed<   	 eed<   	 ee         ed<   	 ed         ed<   	 ed         ed<   	 e	ed<   ededed         dd fd            Zeededed         dd fd                        Zeded         dd fd            Z ed          ded         dd fd            Zededed         dd fd            Zeededed         dd fd                        Zeded         dd fd            Z ed          ded         dd fd            Zeded          dd fd!            Zeded          dd fd"            Zed#eded$         dd fd%            Zeed#eded$         dd fd&                        Zeded$         dd fd'            Z ed(          ded$         dd fd)            Zed#eded$         dd fd*            Zeed#eded$         dd fd+                        Zeded$         dd fd,            Z ed-          ded$         dd fd.            Zeded/         ded          fd0            Zeded/         ded          fd1            Zededed2         dd fd3            Z ededed2         dd fd4            Z!de	iZ"d5S )6	TestClocka  
    A test clock enables deterministic control over objects in testmode. With a test clock, you can create
    objects at a frozen time in the past or future, and advance to a specific future time to observe webhooks and state changes. After the clock advances,
    you can either validate the current state of your scenario (and test your assumptions), change the current state of your scenario (and test more complex scenarios), or keep advancing forward in time.
    ztest_helpers.test_clockOBJECT_NAMEc                   J    e Zd ZU  G d de          Zee         ed<   deiZdS )TestClock.StatusDetailsc                       e Zd ZU eed<   dS )!TestClock.StatusDetails.Advancingtarget_frozen_timeN)__name__
__module____qualname__int__annotations__     c/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/stripe/test_helpers/_test_clock.py	Advancingr   .   s"          #### r$   r&   	advancingN)r   r   r    r   r&   r   r"   _inner_class_typesr#   r$   r%   StatusDetailsr   -   sZ         	 	 	 	 	 	 	 	 I&&&&)95r$   r)   createdTdeleteddeletes_afterfrozen_timeidlivemodenameobject)r'   internal_failurereadystatusstatus_details
test_clockparamsr   returnc                     t          d|                     dd                    t          |                    |                    S )
        Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready.
        r   post1/v1/test_helpers/test_clocks/{test_clock}/advancer6   r7   )r   _static_requestformatr	   clsr6   r7   s      r%   _cls_advancezTestClock._cls_advance]   s]     CJJ*:66 K       	
 	
 		
r$   c                     dS r:   Nr#   r6   r7   s     r%   advancezTestClock.advanceo   	     	r$   c                     dS rE   r#   selfr7   s     r%   rG   zTestClock.advancey   s	     	r$   rC   c                     t          d|                     dd                    t          |                     d                              |                    S )r:   r   r;   r<   r.   r=   r>   )r   _requestr@   r	   getrJ   s     r%   rG   zTestClock.advance   se     MMCJJ*488D>>:: K      	
 	
 		
r$   c                    K   t          d|                     dd                    t          |                    |           d{V           S )r:   r   r;   r<   r=   r>   N)r   _static_request_asyncr@   r	   rA   s      r%   _cls_advance_asynczTestClock._cls_advance_async   s       ++CJJ*:66 K    ,        	
 	
 		
r$   c                 
   K   dS rE   r#   rF   s     r%   advance_asynczTestClock.advance_async          	r$   c                 
   K   dS rE   r#   rJ   s     r%   rS   zTestClock.advance_async          	r$   rQ   c                    K   t          d|                     dd                    t          |                     d                              |           d{V           S )r:   r   r;   r<   r.   r=   r>   N)r   _request_asyncr@   r	   rN   rJ   s     r%   rS   zTestClock.advance_async   s       %%CJJ*488D>>:: K    &        	
 	
 		
r$   r   c                 r    t          d|                     d|                                 |                    S )\
        Creates a new test clock that can be attached to new customers and quotes.
        r   r;   r>   )r   r?   	class_urlrB   r7   s     r%   createzTestClock.create   sB    
     
 
 	
r$   c                    K   t          d|                     d|                                 |           d{V           S )rZ   r   r;   r>   N)r   rP   r[   r\   s     r%   create_asynczTestClock.create_async   sd       ++ ,        
 
 	
r$   sidr   c                     |                                  dt          |          }t          d|                     d||                    S )'
        Deletes a test clock.
        /r   deleter>   )r[   r	   r   r?   rB   r`   r7   urls       r%   _cls_deletezTestClock._cls_delete   s[     +c*:*:*:;    
 
 	
r$   c                     dS rb   Nr#   r`   r7   s     r%   rd   zTestClock.delete   rH   r$   c                     dS ri   r#   rJ   s     r%   rd   zTestClock.delete  s	    
 	r$   rg   c                 V    |                      d|                                 |          S )rb   rd   r>   )_request_and_refreshinstance_urlrJ   s     r%   rd   zTestClock.delete  s6     (( ) 
 
 	
r$   c                    K   |                                  dt          |          }t          d|                     d||           d{V           S )rb   rc   r   rd   r>   N)r[   r	   r   rP   re   s       r%   _cls_delete_asynczTestClock._cls_delete_async  s}       +c*:*:*:;++ ,        
 
 	
r$   c                 
   K   dS ri   r#   rj   s     r%   delete_asynczTestClock.delete_async)  rT   r$   c                 
   K   dS ri   r#   rJ   s     r%   rr   zTestClock.delete_async3  rV   r$   rp   c                 f   K   |                      d|                                 |           d{V S )rb   rd   r>   N)_request_and_refresh_asyncrn   rJ   s     r%   rr   zTestClock.delete_async<  sX       44 5 
 
 
 
 
 
 
 
 	
r$   r   c                     |                      d|                                 |          }t          |t                    s$t	          dt          |          j        z            |S )5
        Returns a list of your test clocks.
        rN   r>   %Expected list object from API, got %s)r?   r[   
isinstancer   	TypeErrortyper   rB   r7   results      r%   listzTestClock.listI  sp     $$MMOO % 
 

 &*-- 	7<<(*  
 r$   c                    K   |                      d|                                 |           d{V }t          |t                    s$t	          dt          |          j        z            |S )rw   rN   r>   Nrx   )rP   r[   ry   r   rz   r{   r   r|   s      r%   
list_asynczTestClock.list_async]  s       00MMOO 1 
 
 
 
 
 
 
 

 &*-- 	7<<(*  
 r$   r   c                 @     | |fi |}|                                  |S ))
        Retrieves a test clock.
        )refreshrB   r.   r7   instances       r%   retrievezTestClock.retrieveq  s2     3r$$V$$r$   c                 P   K    | |fi |}|                                  d{V  |S )r   N)refresh_asyncr   s       r%   retrieve_asynczTestClock.retrieve_async|  sH       3r$$V$$$$&&&&&&&&&r$   N)#r   r   r    __doc__r   r
   r   r"   r   r)   r!   r   strboolclassmethodr   rC   r   staticmethodrG   r   rQ   rS   r]   r_   rg   rd   rp   rr   r   r~   r   r   r   r(   r#   r$   r%   r   r      s        
  	" '";<=   6 6 6 6 6 6 6 6 LLL gdm$$$$   	GGG NNN 3- -.... <==== "!!!

(./G(H
	
 
 
 [
" #)*B#C	   \ X 78	   X .))
78
	
 
 
 *)
" 

(./G(H
	
 
 
 [
" #)*B#C	   \ X 78	   X .//
78
	
 
 
 0/
" 
f%<= 
+ 
 
 
 [
 
56
	
 
 
 [
 

!'(?!@
	
 
 
 [
  "#:;	   \ X v&=> ;    X -((

67

	

 

 

 )(

 

!'(?!@
	
 
 
 [
  "#:;	   \ X 67	   X -..

67

	

 

 

 /.

 34	K	    [& 34	K	    [&  &'@ A	   [  &'@ A	   [ +M:r$   r   N)!stripe._createable_api_resourcer   stripe._deletable_api_resourcer   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   stripe._utilr   r	   typingr
   r   r   r   typing_extensionsr   r   r   5stripe.params.test_helpers._test_clock_advance_paramsr   4stripe.params.test_helpers._test_clock_create_paramsr   4stripe.params.test_helpers._test_clock_delete_paramsr   2stripe.params.test_helpers._test_clock_list_paramsr   6stripe.params.test_helpers._test_clock_retrieve_paramsr   r   r#   r$   r%   <module>r      s   B A A A A A ? ? ? ? ? ? * * * * * * = = = = = = . . . . . . : : : : : : : : 5 5 5 5 5 5 5 5 5 5 5 5 < < < < < < < < < <                          
i; i; i; i; i;+&%$i; i; i; i; i;r$   