o
    BiD                     @   s|   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	 d	eZd
S )    )
ListObject)Plan)RequestOptions)StripeService)sanitize_id)DictListUnioncast)LiteralNotRequired	TypedDictc                	   @   s  e Zd 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i i fdedddedefddZi i fdedddedefddZi i fdedddedefddZi i fdedddedefdd Zi i fdedd!dedefd"d#Zi i fdedd!dedefd$d%Zi i fdd&dedee fd'd(Zi i fdd&dedee fd)d*Zi fdd+dedefd,d-Zi fdd+dedefd.d/Zd0S )1PlanServicec                   @   s(  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< dS )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    r;   r;   T/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/_plan_service.pyCreateParams   sP   
 r=   c                   @   sr   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< dS )	zPlanService.CreateParamsProductr   r   r%   namestatement_descriptortax_code
unit_labelN)r4   r5   r6   r   r7   r8   r:   r   r;   r;   r;   r<   CreateParamsProductZ   s   
 rB   c                   @   sZ   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< dS )r)   flat_amountflat_amount_decimalunit_amountunit_amount_decimalinfup_toN)	r4   r5   r6   r   r9   r8   r:   r	   r   r;   r;   r;   r<   CreateParamsTierz   s   
 rI   c                   @   s$   e Zd ZU eed< 	 ed ed< dS )r.   	divide_by)downuproundN)r4   r5   r6   r9   r8   r   r;   r;   r;   r<   CreateParamsTransformUsage   s
   
 rN   c                   @   s   e Zd ZdS )PlanService.DeleteParamsN)r4   r5   r6   r;   r;   r;   r<   DeleteParams   s    rP   c                   @   sr   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< d	S )
PlanService.ListParamsr   z!PlanService.ListParamsCreated|intcreatedending_beforer   limitr(   starting_afterN)	r4   r5   r6   r   r7   r8   r:   r   r9   r;   r;   r;   r<   
ListParams   s   
 rV   c                   @   sD   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )zPlanService.ListParamsCreatedgtgteltlteN)r4   r5   r6   r   r9   r8   r;   r;   r;   r<   ListParamsCreated   s   
 r[   c                   @   s   e Zd ZU eee  ed< dS )PlanService.RetrieveParamsr   N)r4   r5   r6   r   r   r:   r8   r;   r;   r;   r<   RetrieveParams   s   
 r]   c                   @   sd   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< dS )	PlanService.UpdateParamsr   r   r$   r%   r'   r(   r0   N)	r4   r5   r6   r   r7   r8   r   r:   r9   r;   r;   r;   r<   UpdateParams   s   
 r_   planparamsrO   optionsreturnc              	   C   &   t t| jddjt|dd||dS )l
        Deleting plans means new subscribers can't be added. Existing subscribers aren't affected.
        delete/v1/plans/{plan}r`   apibase_addressra   rb   r
   r   _requestformatr   selfr`   ra   rb   r;   r;   r<   rf         	zPlanService.deletec              	      .   t t| jddjt|dd||dI dH S )re   rf   rg   rh   ri   rj   Nr
   r   _request_asyncrn   r   ro   r;   r;   r<   delete_async     	
zPlanService.delete_asyncr\   c              	   C   rd   )7
        Retrieves the plan with the given ID.
        getrg   rh   ri   rj   rl   ro   r;   r;   r<   retrieve  rq   zPlanService.retrievec              	      rr   )rw   rx   rg   rh   ri   rj   Nrs   ro   r;   r;   r<   retrieve_async)  rv   zPlanService.retrieve_asyncr^   c              	   C   rd   )
        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.
        postrg   rh   ri   rj   rl   ro   r;   r;   r<   update=  rq   zPlanService.updatec              	      rr   )r{   r|   rg   rh   ri   rj   Nrs   ro   r;   r;   r<   update_asyncQ  rv   zPlanService.update_asyncrQ   c              	   C   s   t tt | jddd||dS )/
        Returns a list of your plans.
        rx   	/v1/plansri   rj   )r
   r   r   rm   rp   ra   rb   r;   r;   r<   liste  s   zPlanService.listc              	      s&   t tt | jddd||dI dH S )r   rx   r   ri   rj   N)r
   r   r   rt   r   r;   r;   r<   
list_asyncx  s   
zPlanService.list_asyncr   c              	   C   s   t t| jd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   ri   rj   )r
   r   rm   r   r;   r;   r<   create  s   zPlanService.createc              	      s"   t t| jddd||dI dH S )r   r|   r   ri   rj   N)r
   r   rt   r   r;   r;   r<   create_async  s   
zPlanService.create_asyncN)r4   r5   r6   r   r=   rB   rI   rN   rP   rV   r[   r]   r_   r:   r   r   rf   ru   ry   rz   r}   r~   r   r   r   r   r   r;   r;   r;   r<   r      s    M 









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;   r<   <module>   s   