feat(router): refactor PML response

Remove duplicate responses and return bank_names
<think>
PR Context:
- Title: feat(router): Deduplicate PML response and populate bank details (V2)
- Merged: 2025-07-14T12:45:04Z
- Files changed: 6 files
- Commits: 9 commits

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

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

## Description
<!-- Describe your changes in detail -->

- Merge `payment_experience` for a pm_type, subtype into an array
- Return `bank_names`

### Additional Changes

- [x] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application con
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(router): Deduplicate PML response and populate bank details (V2) (#8583)
Files to modify:


**crates/api_models/src/payment_methods.rs**
  Modify existing code

**crates/api_models/src/payments.rs**
  Modify existing code

**crates/common_enums/src/enums.rs**
  Modify existing code

**crates/router/src/core/payment_methods/vault.rs**
  Modify existing code

**crates/router/src/core/payments/payment_methods.rs**
  Remove:
    - function: private::perform_surcharge_calculation
    - function: private::perform_filtering
    - trait: private::PerformFilteringOnPaymentMethodsEnabled
    - impl: impl RequiredFieldsForEnabledPaymentMethodTypes
    - impl: impl PerformFilteringOnPaymentMethodsEnabled for hyperswitch_domain_models::merchant_connector_account::FlattenedPaymentMethodsEnabled
  Add:
    - function: private::perform_filtering
    - function: private::merge_and_transform
    - function: private::perform_surcharge_calculation
    - function: private::get_pm_subtype_specific_data
    - function: private::populate_pm_subtype_specific_data
    - struct: private::FlattenedPaymentMethodsEnabled
    - struct: private::MergedEnabledPaymentMethod
    - struct: private::MergedEnabledPaymentMethodTypes
    - struct: private::RequiredFieldsAndSurchargeWithExtraInfoForEnabledPaymentMethodType
    - struct: private::RequiredFieldsAndSurchargeWithExtraInfoForEnabledPaymentMethodTypes
    - impl: impl FlattenedPaymentMethodsEnabled
    - impl: impl MergedEnabledPaymentMethodTypes
    - impl: impl RequiredFieldsForEnabledPaymentMethodTypes
{"issue_number": 8582, "pr_number": 8583, "commits_count": 1, "files_changed": 6, "response_length": 2358, "file_count": 7, "needs_breakdown": false}