Subscription Service
Key Features
-
Subscription Management:
- Create, update, and delete subscriptions, managing attributes such as billing cycle, associated plans, and trial periods.
-
Subscription Validation:
- Validates whether users can be added to an organization based on subscription limits.
-
Subscription Retrieval:
- Fetch detailed subscription data or retrieve paginated lists for organizational subscriptions.
Methods
-
Subscription Validation:
check_can_add_user(organization_id, final_users_amount)
: Ensures an organization can add a specified number of users based on its subscription limits.
-
Subscription Creation and Updates:
create_subscription(organization_id, plan_id, subscription_status, billing_cycle_anchor, start_date, trial_start, trial_end)
: Creates a new subscription with attributes like the associated plan, billing cycle, and trial dates.update_subscription(subscription_id, plan_id, subscription_status, billing_cycle_anchor, start_date, trial_start, trial_end)
: Updates existing subscription details, including its plan or status.
-
Subscription Deletion:
finish_subscription(subscription_id)
: Deletes a subscription by its unique ID, marking it as finished or inactive.
-
Subscription Retrieval:
get_subscription(subscription_id)
: Fetches subscription details, including associated plan, product, and permissions.get_organization_subscriptions(organization_id, page, page_size)
: Retrieves paginated subscriptions for a specific organization, including metadata like product images and translations.
Example Workflow
-
Create a New Subscription: Set up a subscription for an organization, specifying billing and trial details:
-
Update an Existing Subscription: Modify details of a subscription, such as its status or associated plan:
- Validate User Addition Eligibility: Check if an organization can add more users:
- Retrieve Paginated Subscriptions: Fetch a paginated list of subscriptions for an organization:
- Delete a Subscription: Mark a subscription as finished or inactive:
Dependencies
-
Repositories Used:
-
SubscriptionRepository
: Handles database operations for subscription records. -
Utilities:
-
Pagination
: Supports efficient paginated retrieval of subscriptions.
Notes
The SubscriptionService
simplifies subscription management by offering a robust API for creating, updating, and maintaining subscriptions while ensuring compliance with organizational limits. It integrates seamlessly with other services to deliver a consistent and efficient user experience.