feat(router): Make `payment_method_subtype` optional

We can have situations where we don't know the `payment_method_subtype`. e.g. Frontend doesn't know whether a `card` is `credit` or `debit`.

To support such scenarios we need to make `payment_method_subtype` nullable
<think>
PR Context:
- Title: feat(router): Make payment_method_subtype optional in payment_attempt [V2]
- Merged: 2025-03-24T07:53:07Z
- Files changed: 16 files
- Commits: 3 commits

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

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

## Description
<!-- Describe your changes in detail -->
- Added diesel migration to make `payment_method_subtype` Nullable in `payment_attempt` table
- Made `payment_method_subtype` an `Option` in request and response structs

### Additional Changes

- [x] This PR modifies the API contract
- 
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(router): Make payment_method_subtype optional in payment_attempt [V2] (#7568)
Files to modify:


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

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

**crates/diesel_models/src/payment_attempt.rs**
  Modify existing code

**crates/diesel_models/src/schema_v2.rs**
  Modify existing code

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

**crates/hyperswitch_connectors/src/connectors/chargebee/transformers.rs**
  Modify existing code

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

**crates/hyperswitch_domain_models/src/payments/payment_attempt.rs**
  Modify existing code

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

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

**crates/router/src/core/payments/routing.rs**
  Modify existing code

**crates/router/src/core/payments/transformers.rs**
  Modify existing code

**crates/router/src/types/api/payment_methods.rs**
  Modify existing code
{"issue_number": 7567, "pr_number": 7568, "commits_count": 1, "files_changed": 16, "response_length": 1885, "file_count": 15, "needs_breakdown": false}