Get Plans

**Request to Subscription Povider to get plans**
/api/v2/items?limit=5&type[is]=plan&item_family_id[is]=cbdemo_omnisupport-solutions'

**Response from Subscription Provider**
```
{
    "list": [
        {
            "item": {
                "id": "cbdemo_enterprise-suite",
                "name": "Enterprise Suite",
                "external_name": "Enterprise Suite",
                "description": "High-end customer support suite with enterprise-grade solutions.",
                "status": "active",
                "resource_version": 1754897340100,
                "updated_at": 1754897340,
                "item_family_id": "cbdemo_omnisupport-solutions",
                "type": "plan",
                "is_shippable": false,
                "is_giftable": false,
                "enabled_for_checkout": true,
                "enabled_in_portal": true,
                "item_applicability": "all",
                "metered": false,
                "channel": "web",
                "bundle_items": [],
                "deleted": false,
                "object": "item"
            }
        },
        {
            "item": {
                "id": "cbdemo_business-suite",
                "name": "Business Suite",
                "external_name": "Business Suite",
                "description": "Advanced customer support plan with premium features.",
                "status": "active",
                "resource_version": 1754897339947,
                "updated_at": 1754897339,
                "item_family_id": "cbdemo_omnisupport-solutions",
                "type": "plan",
                "is_shippable": false,
                "is_giftable": false,
                "enabled_for_checkout": true,
                "enabled_in_portal": true,
                "item_applicability": "all",
                "metered": false,
                "channel": "web",
                "bundle_items": [],
                "deleted": false,
                "object": "item"
            }
        },
        {
            "item": {
                "id": "cbdemo_professional-suite",
                "name": "Professional Suite",
                "external_name": "Professional Suite",
                "description": "Comprehensive customer support plan with extended capabilities.",
                "status": "active",
                "resource_version": 1754897339843,
                "updated_at": 1754897339,
                "item_family_id": "cbdemo_omnisupport-solutions",
                "type": "plan",
                "is_shippable": false,
                "is_giftable": false,
                "enabled_for_checkout": true,
                "enabled_in_portal": true,
                "item_applicability": "all",
                "metered": false,
                "channel": "web",
                "bundle_items": [],
                "deleted": false,
                "object": "item"
            }
        },
        {
            "item": {
                "id": "cbdemo_essential-support",
                "name": "Essential Support",
                "external_name": "Essential Support",
                "description": "Basic customer support plan with core features.",
                "status": "active",
                "resource_version": 1754897339723,
                "updated_at": 1754897339,
                "item_family_id": "cbdemo_omnisupport-solutions",
                "type": "plan",
                "is_shippable": false,
                "is_giftable": false,
                "enabled_for_checkout": true,
                "enabled_in_portal": true,
                "item_applicability": "all",
                "metered": false,
                "channel": "web",
                "bundle_items": [],
                "deleted": false,
                "object": "item"
            }
        }
    ]
}
```

<think>
PR Context:
- Title: feat(connector): Add support for get plans for Chargebee
- Merged: 2025-09-16T12:57:45Z
- Files changed: 21 files
- Commits: 27 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [x] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
This PR adds support for the get plans endpoint for Chargebee

### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variab
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(connector): Add support for get plans for Chargebee (#9281)
Co-authored-by: hyperswitch-bot[bot
Files to modify:


**crates/hyperswitch_connectors/src/connectors/chargebee.rs**
  Add:
    - function: private::get_chargebee_plans_query_params
    - function: private::get_headers
    - function: private::get_url
    - function: private::get_content_type
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - impl: impl api::subscriptions::Subscriptions for Chargebee
    - impl: impl api::subscriptions::GetSubscriptionPlansFlow for Chargebee
    - impl: impl ConnectorIntegration<
        GetSubscriptionPlans,
        GetSubscriptionPlansRequest,
        GetSubscriptionPlansResponse,
    > for Chargebee
    - impl: impl GetSubscriptionPlansV2 for Chargebee
    - impl: impl ConnectorIntegrationV2<
        GetSubscriptionPlans,
        hyperswitch_domain_models::router_data_v2::flow_common_types::GetSubscriptionPlansData,
        GetSubscriptionPlansRequest,
        GetSubscriptionPlansResponse,
    > for Chargebee

**crates/hyperswitch_connectors/src/connectors/chargebee/transformers.rs**
  Add:
    - function: private::try_from
    - struct: pub::ChargebeeListPlansResponse
    - struct: pub::ChargebeeItemList
    - struct: pub::ChargebeeItem
    - impl: impl TryFrom<ResponseRouterData<F, ChargebeeListPlansResponse, T, GetSubscriptionPlansResponse>> for RouterData<F, T, GetSubscriptionPlansResponse>

**crates/hyperswitch_connectors/src/connectors/recurly.rs**
  Add:
    - impl: impl api::subscriptions_v2::SubscriptionsV2 for Recurly
    - impl: impl api::subscriptions_v2::GetSubscriptionPlansV2 for Recurly
    - impl: impl ConnectorIntegrationV2<
        GetSubscriptionPlans,
        GetSubscriptionPlansData,
        GetSubscriptionPlansRequest,
        GetSubscriptionPlansResponse,
    > for Recurly

**crates/hyperswitch_connectors/src/constants.rs**
  Modify existing code

**crates/hyperswitch_connectors/src/default_implementations.rs**
  Add:
    - impl: impl GetSubscriptionPlansFlow for connectors::DummyConnector<T>
    - impl: impl ConnectorIntegration<
        GetSubscriptionPlans,
        GetSubscriptionPlansRequest,
        GetSubscriptionPlansResponse,
    > for connectors::DummyConnector<T>
    - impl: impl Subscriptions for connectors::DummyConnector<T>

**crates/hyperswitch_domain_models/src/router_data_v2/flow_common_types.rs**
  Add:
    - struct: pub::GetSubscriptionPlansData

**crates/hyperswitch_domain_models/src/router_flow_types.rs**
  Add:
    - mod: pub::subscriptions

**crates/hyperswitch_domain_models/src/router_flow_types/subscriptions.rs**
  Add:
    - struct: pub::GetSubscriptionPlans

**crates/hyperswitch_domain_models/src/router_request_types.rs**
  Add:
    - mod: pub::subscriptions

**crates/hyperswitch_domain_models/src/router_request_types/subscriptions.rs**
  Add:
    - struct: pub::GetSubscriptionPlansRequest

**crates/hyperswitch_domain_models/src/router_response_types.rs**
  Add:
    - mod: pub::subscriptions

**crates/hyperswitch_domain_models/src/router_response_types/subscriptions.rs**
  Add:
    - struct: pub::GetSubscriptionPlansResponse
    - struct: pub::SubscriptionPlans

**crates/hyperswitch_domain_models/src/types.rs**
  Modify existing code

**crates/hyperswitch_interfaces/src/api.rs**
  Add:
    - mod: pub::subscriptions
    - mod: pub::subscriptions_v2

**crates/hyperswitch_interfaces/src/api/subscriptions.rs**
  Add:
    - trait: pub::GetSubscriptionPlansFlow
    - trait: pub::Subscriptions
    - trait: pub::Subscriptions
    - trait: pub::GetSubscriptionPlansFlow

**crates/hyperswitch_interfaces/src/api/subscriptions_v2.rs**
  Add:
    - trait: pub::SubscriptionsV2
    - trait: pub::GetSubscriptionPlansV2

**crates/hyperswitch_interfaces/src/connector_integration_v2.rs**
  Modify existing code

**crates/hyperswitch_interfaces/src/conversion_impls.rs**
  Add:
    - function: private::from_old_router_data
    - function: private::to_old_router_data
    - impl: impl RouterDataConversion<T, Req, Resp> for GetSubscriptionPlansData

**crates/hyperswitch_interfaces/src/types.rs**
  Modify existing code

**crates/router/src/core/connector_validation.rs**
  Modify existing code

**crates/router/src/services/api.rs**
  Modify existing code
{"issue_number": 9053, "pr_number": 9281, "commits_count": 1, "files_changed": 21, "response_length": 5123, "file_count": 23, "needs_breakdown": true}