
    <@gD                         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 d dlmZmZmZ  G d d	e      Zy
)    )
ListObject)Plan)RequestOptions)StripeService)sanitize_id)DictListUnioncast)LiteralNotRequired	TypedDictc            	          e Zd 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i i fdedddedefdZi i fdedddedefdZi i fdedddedefdZi i fdedddedefdZi i fdedddedefdZi i fdedddedefdZi i fdd dedee   fd!Zi i fdd dedee   fd"Zi fdd#dedefd$Zi fdd#dedefd%Zy&)'PlanServicec                   ~   e Zd ZU ee   ed<   	 eed      ed<   	 ee   ed<   	 ee   ed<   	 eed      ed<   	 eed<   	 ee	e      ed	<   	 ee   ed
<   	 ed   ed<   	 ee   ed<   	 ed   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e   ed<   	 eed      ed<   y)PlanService.CreateParamsactive)last_during_period	last_evermaxsumaggregate_usageamountamount_decimal)per_unittieredbilling_schemecurrencyexpandid)daymonthweekyearintervalinterval_countLiteral['']|Dict[str, str]metadatameternicknamez#PlanService.CreateParamsProduct|strproductPlanService.CreateParamsTiertiers)	graduatedvolume
tiers_mode&PlanService.CreateParamsTransformUsagetransform_usagetrial_period_days)licensedmetered
usage_typeN)
__name__
__module____qualname__r   bool__annotations__r   intstrr	        S/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/stripe/_plan_service.pyCreateParamsr      st   D!!	 %CD
 	
	 C  	 $C((	 $G,@$ABB	 	 DI&&	 	 899	 $C((	 :;;	 3	 c""	 BCC4 >?@@	  (= >??	 %%MNN	 's++	  (= >??	r?   rA   c                       e Zd ZU ee   ed<   	 ee   ed<   	 eeeef      ed<   	 eed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)	PlanService.CreateParamsProductr   r    r(   namestatement_descriptortax_code
unit_labelN)r7   r8   r9   r   r:   r;   r=   r   r>   r?   r@   CreateParamsProductrC   Z   s    D!!	 	 d38n--	 		 *#..	
 c""	  $$	r?   rH   c                   p    e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   	 eed   ef   ed<   y)r,   flat_amountflat_amount_decimalunit_amountunit_amount_decimalinfup_toN)	r7   r8   r9   r   r<   r;   r=   r
   r   r>   r?   r@   CreateParamsTierzPlanService.CreateParamsTierz   sc     %%	 )--	 !%%	 )--	 WU^S())	r?   rP   c                   *    e Zd ZU eed<   	 ed   ed<   y)r1   	divide_by)downuproundN)r7   r8   r9   r<   r;   r   r>   r?   r@   CreateParamsTransformUsagez&PlanService.CreateParamsTransformUsage   s    	 |$$	r?   rV   c                       e Zd Zy)PlanService.DeleteParamsN)r7   r8   r9   r>   r?   r@   DeleteParamsrX      s    r?   rY   c                       e Zd ZU ee   ed<   	 ed   ed<   	 ee   ed<   	 eee      ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y	)
PlanService.ListParamsr   z!PlanService.ListParamsCreated|intcreatedending_beforer   limitr+   starting_afterN)	r7   r8   r9   r   r:   r;   r=   r	   r<   r>   r?   r@   
ListParamsr[      s    D!!	 @AA	 #3''	 DI&&	 3	 S!!	 $C((	r?   r`   c                   T    e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)PlanService.ListParamsCreatedgtgteltlteN)r7   r8   r9   r   r<   r;   r>   r?   r@   ListParamsCreatedrb      sH    	 	 	 	r?   rg   c                   $    e Zd ZU eee      ed<   y)PlanService.RetrieveParamsr   N)r7   r8   r9   r   r	   r=   r;   r>   r?   r@   RetrieveParamsri      s    DI&&	r?   rj   c                   ~    e Zd ZU ee   ed<   	 eee      ed<   	 ed   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)	PlanService.UpdateParamsr   r   r'   r(   r*   r+   r3   N)	r7   r8   r9   r   r:   r;   r	   r=   r<   r>   r?   r@   UpdateParamsrl      sq    D!!	 DI&&	 :;;	 c""	 S!!	 's++	r?   rm   planparamsrX   optionsreturnc                 |    t        t        | j                  ddj                  t	        |            d||            S )l
        Deleting plans means new subscribers can't be added. Existing subscribers aren't affected.
        delete/v1/plans/{plan}rn   apibase_addressro   rp   r   r   _requestformatr   selfrn   ro   rp   s       r@   rt   zPlanService.delete   sG     MM")){4/@)A"  	
 		
r?   c                    K   t        t        | j                  ddj                  t	        |            d||       d{         S 7 w)rs   rt   ru   rv   rw   rx   Nr   r   _request_asyncr|   r   r}   s       r@   delete_asynczPlanService.delete_async  sW      %%")){4/@)A" &  	
 		
   =A
A
 	A
ri   c                 |    t        t        | j                  ddj                  t	        |            d||            S )7
        Retrieves the plan with the given ID.
        getru   rv   rw   rx   rz   r}   s       r@   retrievezPlanService.retrieve  sG     MM")){4/@)A"  	
 		
r?   c                    K   t        t        | j                  ddj                  t	        |            d||       d{         S 7 w)r   r   ru   rv   rw   rx   Nr   r}   s       r@   retrieve_asynczPlanService.retrieve_async)  sW      %%")){4/@)A" &  	
 		
r   rl   c                 |    t        t        | j                  ddj                  t	        |            d||            S )
        Updates the specified plan by setting the values of the parameters passed. Any parameters not provided are left unchanged. By design, you cannot change a plan's ID, amount, currency, or billing cycle.
        postru   rv   rw   rx   rz   r}   s       r@   updatezPlanService.update=  sG     MM")){4/@)A"  	
 		
r?   c                    K   t        t        | j                  ddj                  t	        |            d||       d{         S 7 w)r   r   ru   rv   rw   rx   Nr   r}   s       r@   update_asynczPlanService.update_asyncQ  sW      %%")){4/@)A" &  	
 		
r   r[   c           
      X    t        t        t           | j                  ddd||            S )/
        Returns a list of your plans.
        r   	/v1/plansrw   rx   )r   r   r   r{   r~   ro   rp   s      r@   listzPlanService.liste  s9     tMM"  	
 		
r?   c           
      t   K   t        t        t           | j                  ddd||       d{         S 7 w)r   r   r   rw   rx   N)r   r   r   r   r   s      r@   
list_asynczPlanService.list_asyncx  sI      t%%" &  	
 		
s   +86
	8r   c           
      J    t        t        | j                  ddd||            S )
        You can now model subscriptions more flexibly using the [Prices API](https://stripe.com/docs/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration.
        r   r   rw   rx   )r   r   r{   r   s      r@   createzPlanService.create  s4     MM"  	
 		
r?   c           
      f   K   t        t        | j                  ddd||       d{         S 7 w)r   r   r   rw   rx   N)r   r   r   r   s      r@   create_asynczPlanService.create_async  sD      %%" &  	
 		
s   $1/
	1N)r7   r8   r9   r   rA   rH   rP   rV   rY   r`   rg   rj   rm   r=   r   r   rt   r   r   r   r   r   r   r   r   r   r   r>   r?   r@   r   r      sH   Ky KZi @9 ,Y y Y <I $ y : .0"$	

 +
  	

 

. .0"$	

 +
  	

 

. 02"$	

 -
  	

 

. 02"$	

 -
  	

 

. .0"$	

 +
  	

 

. .0"$	

 +
  	

 

, ,."$
(
  
 
D		
* ,."$
(
  
 
D		
( MO
0
;I
	
$ MO
0
;I
	
r?   r   N)stripe._list_objectr   stripe._planr   stripe._request_optionsr   stripe._stripe_servicer   stripe._utilr   typingr   r	   r
   r   typing_extensionsr   r   r   r   r>   r?   r@   <module>r      s0    +  2 0 $ * * = =_
- _
r?   