o
    
¼>h	  ã                   @   s,   d dl mZ ddlmZ G dd„ deƒZdS )é   )ÚResourceé   )ÚURLc                       s¦   e Zd Zd‡ fdd„	Zi f‡ fdd„	Zi f‡ fdd„	Zi fdd	„Zi fd
d„Zi fdd„Zi fdd„Z	i fdd„Z
dd„ Zi fdd„Zi fdd„Zi fdd„Z‡  ZS )ÚSubscriptionNc                    s"   t t| ƒ |¡ tjtj | _d S ©N)Úsuperr   Ú__init__r   ÚV1ÚSUBSCRIPTION_URLÚbase_url)ÚselfÚclient©Ú	__class__© ú/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/razorpay/resources/subscription.pyr      s   zSubscription.__init__c                    s   t t| ƒj|fi |¤ŽS )zo
        Fetch all Subscription entities

        Returns:
            Dictionary of Subscription data
        )r   r   Úall)r   ÚdataÚkwargsr   r   r   r   
   s   zSubscription.allc                    s   t t| ƒj||fi |¤ŽS )úÖ
        Fetch Subscription for given Id

        Args:
            subscription_id : Id for which subscription object is retrieved

        Returns:
            Subscription dict for given subscription Id
        )r   r   Úfetch)r   Úsubscription_idr   r   r   r   r   r      s   
zSubscription.fetchc                 K   s   | j }| j||fi |¤ŽS )zÏ
        Create Subscription from given dict

        Args:
            data : Dictionary using which Subscription has to be created

        Returns:
            Subscription Dict which was created
        )r   Úpost_url)r   r   r   Úurlr   r   r   Úcreate   s   
zSubscription.createc                 K   ó"   d  | j|¡}| j||fi |¤ŽS )zã
        Cancel subscription given by subscription_id

        Args:
            subscription_id : Id for which subscription has to be cancelled

        Returns:
            Subscription Dict for given subscription id
        z{}/{}/cancel©Úformatr   r   ©r   r   r   r   r   r   r   r   Úcancel,   ó   
zSubscription.cancelc                 K   r   )zÆ
        Cancel a update

        Args:
            subscription_id : Id for which subscription has to be cancelled

        Returns:
            Subscription Dict for given subscription id
        z{}/{}/cancel_scheduled_changesr   r   r   r   r   Úcancel_scheduled_changes9   r    z%Subscription.cancel_scheduled_changesc                 K   r   )zÐ
        Create addon for given subscription

        Args:
            subscription_id : Id for which addon has to be created

        Return:
            Subscription dict for given subscription id
        z{}/{}/addonsr   r   r   r   r   ÚcreateAddonF   r    zSubscription.createAddonc                 K   r   )zÛ
         Update particular subscription

        Args:
            subscription_id : Id for which subscription has to be edited         
        Returns:
            Subscription dict for given subscription id
        z{}/{})r   r   Ú	patch_urlr   r   r   r   ÚeditS   s   	zSubscription.editc                 K   s"   d  | j|¡}| j|i fi |¤ŽS )r   z {}/{}/retrieve_scheduled_changes)r   r   Úget_url)r   r   r   r   r   r   r   Úpending_update_   r    zSubscription.pending_updatec                 K   r   )zà
        Cancel subscription given by subscription_id

        Args:
            subscription_id : Id for which subscription has to be paused

        Returns:
            Subscription Dict for given subscription id
        z{}/{}/pauser   r   r   r   r   Úpausel   r    zSubscription.pausec                 K   r   )zà
        Cancel subscription given by subscription_id

        Args:
            subscription_id : Id for which subscription has to be resume

        Returns:
            Subscription Dict for given subscription id
        z{}/{}/resumer   r   r   r   r   Úresumey   r    zSubscription.resumec                 K   s$   d  | j||¡}| j||fi |¤ŽS )a'  
        Delete offer linked to a subscription

        Args:
            subscription_id : The id of the subscription to offer need to be deleted
            offer_id : The id of the offer linked to subscription

        Returns:
            Subscription Dict for given subscription id
        z{}/{}/{})r   r   Ú
delete_url)r   r   Úoffer_idr   r   r   r   r   r   Údelete_offer†   s   zSubscription.delete_offerr   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r!   r"   r$   r&   r'   r(   r+   Ú__classcell__r   r   r   r   r      s    	r   N)Úbaser   Úconstants.urlr   r   r   r   r   r   Ú<module>   s    