
    _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 d dlmZ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 errd 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& d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m: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                   ZAdS )     )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralUnpackTYPE_CHECKING)Account)Application)Coupon)Customer)Discount)PaymentMethod)Plan)Price)PromotionCode)Subscription)TaxId)TaxRate) SubscriptionScheduleCancelParams) SubscriptionScheduleCreateParams)SubscriptionScheduleListParams) SubscriptionScheduleModifyParams)!SubscriptionScheduleReleaseParams)"SubscriptionScheduleRetrieveParams)	TestClockc                   ~   e Zd ZU dZdZeed                  ed<    G d de          Z	 G d de          Z
 G d d	e          Z G d
 de          Zeed                  ed<   	 e	ed<   	 ee         ed<   	 ee         ed<   	 eed<   	 ee
         ed<   	 ed         ed<   	 ee         ed<   	 eed<   ed         ed<   	 eed<   	 eed<   	 eeeef                  ed<   	 ed         ed<   	 ee         ed<   	 ee         ed<   	 ee         ed<   	 ed          ed!<   	 eed"                  ed#<   	 eed$                  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d0                        Zed'ed(         d)d fd1            Z ed2          d'ed(         d)d fd3            Zed'ed4         d)d fd5            Zed'ed4         d)d fd6            Zed'ed7         d)ed          fd8            Z ed'ed7         d)ed          fd9            Z!eded'ed:         d)d fd;            Z"ed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dA          d'ed=         d)d fdB            Z%ed&ed'ed=         d)d fdC            Z&eed&ed'ed=         d)d fdD                        Z'ed'ed=         d)d fdE            Z' edF          d'ed=         d)d fdG            Z'eded'edH         d)d fdI            Z(eded'edH         d)d fdJ            Z)e	e
eedKZ*dLS )MSubscriptionSchedulez
    A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.

    Related guide: [Subscription schedules](https://docs.stripe.com/billing/subscriptions/subscription-schedules)
    subscription_scheduleOBJECT_NAMEc                   |    e Zd ZU  G d de          Zee         ed<   	 ed         ed<   	 ee         ed<   	 deiZ	dS ) SubscriptionSchedule.BillingModec                   2    e Zd ZU eed                  ed<   dS ))SubscriptionSchedule.BillingMode.Flexible)includeditemizedproration_discountsN)__name__
__module____qualname__r   r   __annotations__     a/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/stripe/_subscription_schedule.pyFlexibler.   ?   s-         !)'2H*I!JJJJ r7   r9   flexible)classicr:   type
updated_atN)
r2   r3   r4   r   r9   r   r5   r   int_inner_class_typesr6   r7   r8   BillingModer,   >   s         	 	 	 	 	| 	 	 	 8$$$$	 +,,,,	 SM!!!	 )(3r7   r@   c                   &    e Zd ZU eed<   	 eed<   dS )!SubscriptionSchedule.CurrentPhaseend_date
start_dateN)r2   r3   r4   r>   r5   r6   r7   r8   CurrentPhaserB   S   s/         	 	 	r7   rE   c                      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d         e
d<   	 ee         e
d<   	 eed                  e
d<   	 eed                  e
d<   	 ee         e
d<   	 ee
d<   eed                  e
d<   	 ee         e
d<   	 eeeedZdS )$SubscriptionSchedule.DefaultSettingsc                   |    e Zd ZU  G d de          Zeed                  ed<   	 eed<   	 ee         ed<   	 deiZ	dS )1SubscriptionSchedule.DefaultSettings.AutomaticTaxc                   J    e Zd ZU eed                  ed<   	 ed         ed<   dS );SubscriptionSchedule.DefaultSettings.AutomaticTax.Liabilityr   accountrL   selfr<   Nr2   r3   r4   r   r   r5   r   r6   r7   r8   	LiabilityrK   _   E         !/)"<==== /0000 r7   rP   requires_location_inputsdisabled_reasonenabled	liabilityN
r2   r3   r4   r   rP   r   r   r5   boolr?   r6   r7   r8   AutomaticTaxrI   ^                L    &g.H&IJJJJ MMM  	**** #.y!9r7   rX   c                   >    e Zd ZU ee         ed<   	 ee         ed<   dS )6SubscriptionSchedule.DefaultSettings.BillingThresholds
amount_gtereset_billing_cycle_anchorNr2   r3   r4   r   r>   r5   rW   r6   r7   r8   BillingThresholdsr[   w   =          %%% )1666 r7   r_   c                       e Zd ZU  G d de          Zeeed                           ed<   	 ee	         ed<   	 eed<   deiZ
dS )4SubscriptionSchedule.DefaultSettings.InvoiceSettingsc                   J    e Zd ZU eed                  ed<   	 ed         ed<   dS );SubscriptionSchedule.DefaultSettings.InvoiceSettings.Issuerr   rL   rM   r<   NrO   r6   r7   r8   Issuerrd      rQ   r7   re   r   account_tax_idsdays_until_dueissuerNr2   r3   r4   r   re   r   r   r   r5   r>   r?   r6   r7   r8   InvoiceSettingsrb      s                 &d?7+C&DEEEE %SM))) NNN"*F!3r7   rj   c                   >    e Zd ZU ee         ed<   	 ed         ed<   dS )1SubscriptionSchedule.DefaultSettings.TransferDataamount_percentr   destinationNr2   r3   r4   r   floatr5   r   r6   r7   r8   TransferDatarl      >         $UO+++ )3333 r7   rq   application_fee_percentautomatic_tax	automaticphase_startbilling_cycle_anchorbilling_thresholdscharge_automaticallysend_invoicecollection_methodr   default_payment_methoddescriptioninvoice_settingsr   on_behalf_oftransfer_data)rt   ry   r   r   N)r2   r3   r4   r   rX   r_   rj   rq   r   rp   r5   r   r   strr?   r6   r7   r8   DefaultSettingsrG   ]   s        	: 	: 	: 	: 	:< 	: 	: 	:2	 	 	 	 	 	 	 		4 	4 	4 	4 	4l 	4 	4 	4,	 	 	 	 	< 	 	 	 "*%000	  ----%&@AAAA	 %%67777	 $:;
 	
 	
 	
	 !))I JJJJ	 c]"""	 *)))y9::::	  ----	 *"3 /)	
 
r7   r   c                      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 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d                  ed<   	 ee         ed<   	 eed                  ed<   	 eed<   	 eed                  ed<   	 eed                  ed<   	 ee         ed<   	 ee         ed<   	 eed<   	 ee         ed<   	 ee	         ed <   	 eeeef                  ed!<   	 eed"                  ed#<   	 ed$         ed%<   	 eed&<   	 ee
         ed'<   	 ee         ed(<   	 eeeeee	e
d)Zd*S )+SubscriptionSchedule.Phasec                       e Zd ZU  G d de          Z G d de          Zee         ed<   	 ee	e
e
f                  ed<   	 eed<   ed         ed	<   	 ee         ed
<   	 eed                  ed<   	 eedZdS ))SubscriptionSchedule.Phase.AddInvoiceItemc                   z    e Zd ZU eed                  ed<   	 eed                  ed<   	 eed                  ed<   dS )2SubscriptionSchedule.Phase.AddInvoiceItem.Discountr   couponDiscountResourcediscountr   promotion_codeNr2   r3   r4   r   r   r5   r6   r7   r8   r   r      g          !:;;;; #?3E#FGGGG !))I JJJJ r7   r   c                   f    e Zd ZU  G d de          Z G d de          Zeed<   eed<   eedZdS )	0SubscriptionSchedule.Phase.AddInvoiceItem.Periodc                   >    e Zd ZU ee         ed<   	 ed         ed<   dS )4SubscriptionSchedule.Phase.AddInvoiceItem.Period.End	timestamp)min_item_period_end	phase_endr   r<   Nr2   r3   r4   r   r>   r5   r   r6   r7   r8   Endr      sG         '},,, "G    r7   r   c                   >    e Zd ZU ee         ed<   	 ed         ed<   dS )6SubscriptionSchedule.Phase.AddInvoiceItem.Period.Startr   )max_item_period_startrw   r   r<   Nr   r6   r7   r8   Startr      sG         '},,, "K    r7   r   endstart)r   r   N)r2   r3   r4   r   r   r   r5   r?   r6   r7   r8   Periodr      s         
 
 
 
 
, 
 
 

 
 
 
 
L 
 
 
 -05%A%A"""r7   r   	discountsmetadataperiodr   pricequantityr   	tax_rates)r   r   N)r2   r3   r4   r   r   r   r   r5   r   r   r   r   r>   r?   r6   r7   r8   AddInvoiceItemr      s	            <   B B B B B B B B: H~%%% tCH~.... NNN"7++++ sm###  Y0000 086!J!Jr7   r   c                   |    e Zd ZU  G d de          Zeed                  ed<   	 eed<   	 ee         ed<   	 deiZ	dS )'SubscriptionSchedule.Phase.AutomaticTaxc                   J    e Zd ZU eed                  ed<   	 ed         ed<   dS )1SubscriptionSchedule.Phase.AutomaticTax.Liabilityr   rL   rM   r<   NrO   r6   r7   r8   rP   r     rQ   r7   rP   rR   rS   rT   rU   NrV   r6   r7   r8   rX   r     rY   r7   rX   c                   >    e Zd ZU ee         ed<   	 ee         ed<   dS ),SubscriptionSchedule.Phase.BillingThresholdsr\   r]   Nr^   r6   r7   r8   r_   r   )  r`   r7   r_   c                   z    e Zd ZU eed                  ed<   	 eed                  ed<   	 eed                  ed<   dS )#SubscriptionSchedule.Phase.Discountr   r   r   r   r   r   Nr   r6   r7   r8   r   r   3  sg         _X67777 /ABCCCC %__%EFFFF r7   r   c                       e Zd ZU  G d de          Zeeed                           ed<   	 ee	         ed<   	 ee         ed<   	 deiZ
dS )*SubscriptionSchedule.Phase.InvoiceSettingsc                   J    e Zd ZU eed                  ed<   	 ed         ed<   dS )1SubscriptionSchedule.Phase.InvoiceSettings.Issuerr   rL   rM   r<   NrO   r6   r7   r8   re   r   B  rQ   r7   re   r   rf   rg   rh   Nri   r6   r7   r8   rj   r   A  s                 &d?7+C&DEEEE %SM))) V$$$$ #+F!3r7   rj   c                      e Zd ZU  G d de          Z G d de          Zee         ed<   	 ee         ed<   	 ee	e
e
f                  ed<   	 ed         ed	<   	 ed
         ed<   	 ee         ed<   	 eed                  ed<   	 eedZdS )SubscriptionSchedule.Phase.Itemc                   &    e Zd ZU ee         ed<   dS )1SubscriptionSchedule.Phase.Item.BillingThresholds	usage_gteN)r2   r3   r4   r   r>   r5   r6   r7   r8   r_   r   [  s&         #C=((( r7   r_   c                   z    e Zd ZU eed                  ed<   	 eed                  ed<   	 eed                  ed<   dS )(SubscriptionSchedule.Phase.Item.Discountr   r   r   r   r   r   Nr   r6   r7   r8   r   r   a  r   r7   r   ry   r   r   r   planr   r   r   r   r   )ry   r   N)r2   r3   r4   r   r_   r   r   r5   r   r   r   r   r>   r?   r6   r7   r8   Itemr   Z  s.            L       <    !)): ;;;; H~%%% tCH~.... "&)))) #7++++ sm###  Y0000 '8%" "r7   r   c                   >    e Zd ZU ee         ed<   	 ed         ed<   dS )'SubscriptionSchedule.Phase.TransferDatarm   r   rn   Nro   r6   r7   r8   rq   r     rr   r7   rq   add_invoice_itemsrs   rt   ru   rx   ry   rz   r}   currencyr   r~   r   default_tax_ratesr   r   rC   r   itemsr   r   r   )always_invoicecreate_prorationsnoneproration_behaviorrD   r   	trial_end)r   rt   ry   r   r   r   r   N)r2   r3   r4   r   r   rX   r_   r   rj   r   rq   r   r5   r   rp   r   r   r   r>   r   r?   r6   r7   r8   Phaser      s_        A	K A	K A	K A	K A	K\ A	K A	K A	KF	: 	: 	: 	: 	:< 	: 	: 	:2	 	 	 	 	 	 	 		 	 	 	 	| 	 	 		4 	4 	4 	4 	4l 	4 	4 	424	 4	 4	 4	 4	< 4	 4	 4	l	 	 	 	 	< 	 	 	  ////	 "*%000	  ----&w/I'JKKKK	 %%67777	 $:;
 	
 	
 	
	 	 !))I JJJJ	 $DO4444	 c]"""	 >!!!	 	 #?3333	 Dz	 4S>****	 y9::::	 $9
 	
 	
 	
	 	  ----	 C=   	 "0)"3! /)
 
r7   r   r   applicationbilling_modecanceled_atcompleted_atcreatedcurrent_phaser   customercustomer_accountdefault_settings)cancelr   releaserenewend_behavioridlivemoder   objectphasesreleased_atreleased_subscription)activecanceled	completednot_startedreleasedstatusr   subscriptionr&   
test_clockscheduleparamsr    returnc                     t          d|                     dd                    t          |                    |                    S )
        Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.
        r(   post,/v1/subscription_schedules/{schedule}/cancelr   r   r   _static_requestformatr
   clsr   r   s      r8   _cls_cancelz SubscriptionSchedule._cls_cancelE  s]     ">EE(22 F       	
 	
 		
r7   c                     dS r   Nr6   r   r   s     r8   r   zSubscriptionSchedule.cancelY  	     	r7   c                     dS r   r6   rN   r   s     r8   r   zSubscriptionSchedule.cancelc  	     	r7   r   c                     t          d|                     dd                    t          |                     d                              |                    S )r   r(   r   r   r   r   r   r   _requestr   r
   getr   s     r8   r   zSubscriptionSchedule.cancell  se     "MM>EE($88 F      	
 	
 		
r7   c                    K   t          d|                     dd                    t          |                    |           d{V           S )r   r(   r   r   r   r   Nr   _static_request_asyncr   r
   r   s      r8   _cls_cancel_asyncz&SubscriptionSchedule._cls_cancel_async~  s       "++>EE(22 F    ,        	
 	
 		
r7   c                 
   K   dS r   r6   r   s     r8   cancel_asyncz!SubscriptionSchedule.cancel_async         	r7   c                 
   K   dS r   r6   r   s     r8   r  z!SubscriptionSchedule.cancel_async         	r7   r  c                    K   t          d|                     dd                    t          |                     d                              |           d{V           S )r   r(   r   r   r   r   r   Nr   _request_asyncr   r
   r   r   s     r8   r  z!SubscriptionSchedule.cancel_async  s       "%%>EE($88 F    &        	
 	
 		
r7   r!   c                 r    t          d|                     d|                                 |                    S )
        Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.
        r(   r   r   )r   r   	class_urlr   r   s     r8   createzSubscriptionSchedule.create  sB     "    
 
 	
r7   c                    K   t          d|                     d|                                 |           d{V           S )r  r(   r   r   N)r   r   r  r  s     r8   create_asyncz!SubscriptionSchedule.create_async  sd       "++ ,        
 
 	
r7   r"   c                     |                      d|                                 |          }t          |t                    s$t	          dt          |          j        z            |S )D
        Retrieves the list of your subscription schedules.
        r   r   %Expected list object from API, got %s)r   r  
isinstancer   	TypeErrorr<   r2   r   r   results      r8   listzSubscriptionSchedule.list  sp     $$MMOO % 
 

 &*-- 	7<<(*  
 r7   c                    K   |                      d|                                 |           d{V }t          |t                    s$t	          dt          |          j        z            |S )r  r   r   Nr  )r   r  r  r   r  r<   r2   r  s      r8   
list_asynczSubscriptionSchedule.list_async  s       00MMOO 1 
 
 
 
 
 
 
 

 &*-- 	7<<(*  
 r7   r#   c                     |                                  dt          |          }t          d|                     d||                    S )<
        Updates an existing subscription schedule.
        /r(   r   r   )r  r
   r   r   r   r   r   urls       r8   modifyzSubscriptionSchedule.modify  sX     +b///:"    
 
 	
r7   c                    K   |                                  dt          |          }t          d|                     d||           d{V           S )r  r  r(   r   r   N)r  r
   r   r   r  s       r8   modify_asyncz!SubscriptionSchedule.modify_async  sz       +b///:"++ ,        
 
 	
r7   r$   c                     t          d|                     dd                    t          |                    |                    S )  
        Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property.
        r(   r   -/v1/subscription_schedules/{schedule}/releaser   r   r   r   s      r8   _cls_releasez!SubscriptionSchedule._cls_release!  s]     "?FF(22 G       	
 	
 		
r7   c                     dS r$  Nr6   r   s     r8   r   zSubscriptionSchedule.release5  r   r7   c                     dS r(  r6   r   s     r8   r   zSubscriptionSchedule.release?  r   r7   r&  c                     t          d|                     dd                    t          |                     d                              |                    S )r$  r(   r   r%  r   r   r   r   r   s     r8   r   zSubscriptionSchedule.releaseH  se     "MM?FF($88 G      	
 	
 		
r7   c                    K   t          d|                     dd                    t          |                    |           d{V           S )r$  r(   r   r%  r   r   Nr   r   s      r8   _cls_release_asyncz'SubscriptionSchedule._cls_release_asyncZ  s       "++?FF(22 G    ,        	
 	
 		
r7   c                 
   K   dS r(  r6   r   s     r8   release_asyncz"SubscriptionSchedule.release_asyncn  r  r7   c                 
   K   dS r(  r6   r   s     r8   r.  z"SubscriptionSchedule.release_asyncx  r  r7   r,  c                    K   t          d|                     dd                    t          |                     d                              |           d{V           S )r$  r(   r   r%  r   r   r   Nr  r   s     r8   r.  z"SubscriptionSchedule.release_async  s       "%%?FF($88 G    &        	
 	
 		
r7   r%   c                 @     | |fi |}|                                  |S )
        Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation.
        )refreshr   r   r   instances       r8   retrievezSubscriptionSchedule.retrieve  s2     3r$$V$$r7   c                 P   K    | |fi |}|                                  d{V  |S )r2  N)refresh_asyncr4  s       r8   retrieve_asyncz#SubscriptionSchedule.retrieve_async  sH       3r$$V$$$$&&&&&&&&&r7   )r   r   r   r   N)+r2   r3   r4   __doc__r*   r   r   r5   r   r@   rE   r   r   r   r   r>   r   rW   r   r   classmethodr   r   r   staticmethodr   r	   r  r  r  r  r   r  r  r   r"  r&  r   r,  r.  r6  r9  r?   r6   r7   r8   r(   r(   /   s        
  	  '"9:;   4 4 4 4 4l 4 4 4*    |   m
 m
 m
 m
 m
, m
 m
 m
^g
 g
 g
 g
 g
 g
 g
 g
R	 /-89999  # 3- LLL L)))) j)))) sm### &%%%>???? 	GGG NNN tCH~&&&& +,,,, K # $C=((( D    ?>:;;;; 56666 

 ;<
 
 	
 
 
 [
& !'(J!K	   \ X AB	   X -((
AB
	
 
 
 )(
" 

 ;<
 
 	
 
 
 [
& !'(J!K	   \ X AB	   X -..
AB
	
 
 
 /.
" 
@A
	
 
 
 [
 
@A
	
 
 
 [
 >?	*	+   [& >?	*	+   [& 

 &'I J
	
 
 
 [
  

 &'I J
	
 
 
 [
  

 <=
 
 	
 
 
 [
& !'(K!L	   \ X BC	   X .))
BC
	
 
 
 *)
" 

 <=
 
 	
 
 
 [
& !'(K!L	   \ X BC	   X .//
BC
	
 
 
 0/
"  &'K L	   [  &'K L	   [ $%+	 r7   r(   N)Bstripe._createable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   stripe._updateable_api_resourcer   stripe._utilr	   r
   typingr   r   r   r   r   r   typing_extensionsr   r   r   stripe._accountr   stripe._applicationr   stripe._couponr   stripe._customerr   stripe._discountr   r   stripe._payment_methodr   stripe._planr   stripe._pricer   stripe._promotion_coder   stripe._subscriptionr   stripe._tax_idr   stripe._tax_rater   2stripe.params._subscription_schedule_cancel_paramsr    2stripe.params._subscription_schedule_create_paramsr!   0stripe.params._subscription_schedule_list_paramsr"   2stripe.params._subscription_schedule_modify_paramsr#   3stripe.params._subscription_schedule_release_paramsr$   4stripe.params._subscription_schedule_retrieve_paramsr%   stripe.test_helpers._test_clockr&   r(   r6   r7   r8   <module>rY     s   B A A A A A 4 4 4 4 4 4 * * * * * * = = = = = = . . . . . . A A A A A A : : : : : : : : A A A A A A A A A A A A A A A A < < < < < < < < < < :''''''//////%%%%%%))))))======444444!!!!!!######444444111111$$$$$$((((((                               :99999    01./01    r7   