Issue:
Bug: [BUG] previous rules are being considered for surcharge calculation even after updating surcharge rules in database



### Bug Description

When I updated surcharge rules using the `PUT /routing/decision/surcharge` endpoint, the surcharge rules are being updated in DB but when I do merchant payment method list(PML), previous rules are being applied.

### Expected Behavior

After update, the new rules must be applied during surcharge calculation during PML

### Actual Behavior

After update, old rules are applied during surcharge calculation during PML

### Steps To Reproduce

1. Update surcharge rules 
2. Do Merchant Payment Method List.


### Context For The Bug

this is probably caused because the in memory cache is not being invalidated probably during Update.

### Environment

Are you using hyperswitch hosted version? Yes/No
If yes, please provide the value of the `x-request-id` response header to help us debug your issue.

If not (or if building/running locally), please provide the following details:
1. Operating System or Linux distribution:
2. Rust version (output of `rustc --version`): ``
3. App version (output of `cargo r --features vergen -- --version`): ``


### Have you spent some time checking if this bug has been raised before?

- [x] I checked and didn't find a similar issue

### Have you read the Contributing Guidelines?

- [x] I have read the [Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)

### Are you willing to submit a PR?

Yes, I am willing to submit a PR!

Pull request description:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [x] Bugfix
- [ ] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
When surcharge rules where updated or deleted, the in memory cache was being invalidated using the wrong key. Fixed that issue in this PR.


### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are the paths where you can find config files:
1. `config`
2. `crates/router/src/configs`
3. `loadtest/config`
-->


## Motivation and Context
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you don't have an issue, we'd recommend starting with one first so the PR
can focus on the implementation (unless it is an obvious bug or documentation fix
that will have little conversation).
-->


## How did you test it?
<!--
Did you write an integration/unit/API test to verify the code changes?
Or did you test this change manually (provide relevant screenshots)?
-->
 1. upsert surcharge rules. If amount >500 and <1000 add a surcharge of 40%.
```
curl --location --request PUT 'http://localhost:8080/routing/decision/surcharge' \
--header 'Content-Type: application/json' \
--header 'api-key: dev_bLGFEtyJtHdvJqXtbnwOcnxpBuNk9lcGIHewiAgCcQQKXYdyoHw8SyAz5JcfikMl' \
--data '{
    "name": "Surcharge Conditional config",
    "algorithm": {
        "defaultSelection": {
            "surcharge_details": null
        },
        "rules": [
            {
                "name": "rule_1",
                "routingOutput": {
                    "surcharge_details": {
                        "surcharge": {
                            "type": "rate",
                            "value": {
                                "percentage": 40
                            }
                        },
                        "tax_on_surcharge": {
                            "percentage": 40
                        }
                    }
                },
                "statements": [
                    {
                        "condition": [
                            {
                                "lhs": "amount",
                                "comparison": "greater_than",
                                "value": {
                                    "type": "number",
                                    "value": 500
                                },
                                "metadata": {}
                            },
                            {
                                "lhs": "amount",
                                "comparison": "less_than",
                                "value": {
                                    "type": "number",
                                    "value": 1000
                                },
                                "metadata": {}
                            }
                        ],
                        "nested": null
                    }
                ]
            }
        ],
        "metadata": {}
    },
    "merchant_surcharge_configs": {
        "show_surcharge_breakup_screen": true
    }
}'
```
should get status code 200 response.

2. Create payment of 540 

```
curl --location 'http://localhost:8080/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: dev_bLGFEtyJtHdvJqXtbnwOcnxpBuNk9lcGIHewiAgCcQQKXYdyoHw8SyAz5JcfikMl' \
--data-raw '{
    "amount": 540,
    "currency": "USD",
    "confirm": false,
    "capture_method": "automatic",
    "capture_on": "2022-09-10T10:11:12Z",
    "amount_to_capture": 540,
    "customer_id": "StripeCustomer",
    "email": "guest@example.com",
    "name": "John Doe",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "Its my first payment request",
    "authentication_type": "no_three_ds",
    "return_url": "https://duck.com",
    "billing": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "PiX"
        }
    },
    "shipping": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "PiX"
        }
    },
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    }
}'
```

3. Do payment method list.
```
curl --location 'http://localhost:8080/account/payment_methods?client_secret=pay_rKiEoW6t1eHHzS8WukOx_secret_QvEuTgyhWcGmNhzqHrTc' \
--header 'Accept: application/json' \
--header 'api-key: pk_dev_8ea5f5ea888f43e199ae05a22b7aaae8'
```

Appropriate surcharge must be applied to each of the payment method.
```
"surcharge_details": {
                        "surcharge": {
                            "type": "rate",
                            "value": {
                                "percentage": 40.0
                            }
                        },
                        "tax_on_surcharge": {
                            "percentage": 40.0
                        },
                        "display_surcharge_amount": 2.16,
                        "display_tax_on_surcharge_amount": 0.87,
                        "display_total_surcharge_amount": 3.03
                    },
```

4. Now update the surcharge rule. If amount >500 and <1000 add a surcharge of 10%.
```
curl --location --request PUT 'http://localhost:8080/routing/decision/surcharge' \
--header 'Content-Type: application/json' \
--header 'api-key: dev_bLGFEtyJtHdvJqXtbnwOcnxpBuNk9lcGIHewiAgCcQQKXYdyoHw8SyAz5JcfikMl' \
--data '{
    "name": "Surcharge Conditional config",
    "algorithm": {
        "defaultSelection": {
            "surcharge_details": null
        },
        "rules": [
            {
                "name": "rule_1",
                "routingOutput": {
                    "surcharge_details": {
                        "surcharge": {
                            "type": "rate",
                            "value": {
                                "percentage": 10
                            }
                        },
                        "tax_on_surcharge": {
                            "percentage": 10
                        }
                    }
                },
                "statements": [
                    {
                        "condition": [
                            {
                                "lhs": "amount",
                                "comparison": "greater_than",
                                "value": {
                                    "type": "number",
                                    "value": 500
                                },
                                "metadata": {}
                            },
                            {
                                "lhs": "amount",
                                "comparison": "less_than",
                                "value": {
                                    "type": "number",
                                    "value": 1000
                                },
                                "metadata": {}
                            }
                        ],
                        "nested": null
                    }
                ]
            }
        ],
        "metadata": {}
    },
    "merchant_surcharge_configs": {
        "show_surcharge_breakup_screen": true
    }
}'
```
5. Do payment method list again.
```
curl --location 'http://localhost:8080/account/payment_methods?client_secret=pay_rKiEoW6t1eHHzS8WukOx_secret_QvEuTgyhWcGmNhzqHrTc' \
--header 'Accept: application/json' \
--header 'api-key: pk_dev_8ea5f5ea888f43e199ae05a22b7aaae8'
```
Appropriate surcharge must be applied to each of the payment method.
```
"surcharge_details": {
                        "surcharge": {
                            "type": "rate",
                            "value": {
                                "percentage": 10.0
                            }
                        },
                        "tax_on_surcharge": {
                            "percentage": 10.0
                        },
                        "display_surcharge_amount": 0.54,
                        "display_tax_on_surcharge_amount": 0.06,
                        "display_total_surcharge_amount": 0.6
                    },
```



## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed the submitted code
- [ ] I added unit tests for my changes where possible


Testing:

 1. upsert surcharge rules. If amount >500 and <1000 add a surcharge of 40%.
```
curl --location --request PUT 'http://localhost:8080/routing/decision/surcharge' \
--header 'Content-Type: application/json' \
--header 'api-key: dev_bLGFEtyJtHdvJqXtbnwOcnxpBuNk9lcGIHewiAgCcQQKXYdyoHw8SyAz5JcfikMl' \
--data '{
    "name": "Surcharge Conditional config",
    "algorithm": {
        "defaultSelection": {
            "surcharge_details": null
        },
        "rules": [
            {
                "name": "rule_1",
                "routingOutput": {
                    "surcharge_details": {
                        "surcharge": {
                            "type": "rate",
                            "value": {
                                "percentage": 40
                            }
                        },
                        "tax_on_surcharge": {
                            "percentage": 40
                        }
                    }
                },
                "statements": [
                    {
                        "condition": [
                            {
                                "lhs": "amount",
                                "comparison": "greater_than",
                                "value": {
                                    "type": "number",
                                    "value": 500
                                },
                                "metadata": {}
                            },
                            {
                                "lhs": "amount",
                                "comparison": "less_than",
                                "value": {
                                    "type": "number",
                                    "value": 1000
                                },
                                "metadata": {}
                            }
                        ],
                        "nested": null
                    }
                ]
            }
        ],
        "metadata": {}
    },
    "merchant_surcharge_configs": {
        "show_surcharge_breakup_screen": true
    }
}'
```
should get status code 200 response.

2. Create payment of 540 

```
curl --location 'http://localhost:8080/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: dev_bLGFEtyJtHdvJqXtbnwOcnxpBuNk9lcGIHewiAgCcQQKXYdyoHw8SyAz5JcfikMl' \
--data-raw '{
    "amount": 540,
    "currency": "USD",
    "confirm": false,
    "capture_method": "automatic",
    "capture_on": "2022-09-10T10:11:12Z",
    "amount_to_capture": 540,
    "customer_id": "StripeCustomer",
    "email": "guest@example.com",
    "name": "John Doe",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "Its my first payment request",
    "authentication_type": "no_three_ds",
    "return_url": "https://duck.com",
    "billing": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "PiX"
        }
    },
    "shipping": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "PiX"
        }
    },
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    }
}'
```

3. Do payment method list.
```
curl --location 'http://localhost:8080/account/payment_methods?client_secret=pay_rKiEoW6t1eHHzS8WukOx_secret_QvEuTgyhWcGmNhzqHrTc' \
--header 'Accept: application/json' \
--header 'api-key: pk_dev_8ea5f5ea888f43e199ae05a22b7aaae8'
```

Appropriate surcharge must be applied to each of the payment method.
```
"surcharge_details": {
                        "surcharge": {
                            "type": "rate",
                            "value": {
                                "percentage": 40.0
                            }
                        },
                        "tax_on_surcharge": {
                            "percentage": 40.0
                        },
                        "display_surcharge_amount": 2.16,
                        "display_tax_on_surcharge_amount": 0.87,
                        "display_total_surcharge_amount": 3.03
                    },
```

4. Now update the surcharge rule. If amount >500 and <1000 add a surcharge of 10%.
```
curl --location --request PUT 'http://localhost:8080/routing/decision/surcharge' \
--header 'Content-Type: application/json' \
--header 'api-key: dev_bLGFEtyJtHdvJqXtbnwOcnxpBuNk9lcGIHewiAgCcQQKXYdyoHw8SyAz5JcfikMl' \
--data '{
    "name": "Surcharge Conditional config",
    "algorithm": {
        "defaultSelection": {
            "surcharge_details": null
        },
        "rules": [
            {
                "name": "rule_1",
                "routingOutput": {
                    "surcharge_details": {
                        "surcharge": {
                            "type": "rate",
                            "value": {
                                "percentage": 10
                            }
                        },
                        "tax_on_surcharge": {
                            "percentage": 10
                        }
                    }
                },
                "statements": [
                    {
                        "condition": [
                            {
                                "lhs": "amount",
                                "comparison": "greater_than",
                                "value": {
                                    "type": "number",
                                    "value": 500
                                },
                                "metadata": {}
                            },
                            {
                                "lhs": "amount",
                                "comparison": "less_than",
                                "value": {
                                    "type": "number",
                                    "value": 1000
                                },
                                "metadata": {}
                            }
                        ],
                        "nested": null
                    }
                ]
            }
        ],
        "metadata": {}
    },
    "merchant_surcharge_configs": {
        "show_surcharge_breakup_screen": true
    }
}'
```
5. Do payment method list again.
```
curl --location 'http://localhost:8080/account/payment_methods?client_secret=pay_rKiEoW6t1eHHzS8WukOx_secret_QvEuTgyhWcGmNhzqHrTc' \
--header 'Accept: application/json' \
--header 'api-key: pk_dev_8ea5f5ea888f43e199ae05a22b7aaae8'
```
Appropriate surcharge must be applied to each of the payment method.
```
"surcharge_details": {
                        "surcharge": {
                            "type": "rate",
                            "value": {
                                "percentage": 10.0
                            }
                        },
                        "tax_on_surcharge": {
                            "percentage": 10.0
                        },
                        "display_surcharge_amount": 0.54,
                        "display_tax_on_surcharge_amount": 0.06,
                        "display_total_surcharge_amount": 0.6
                    },
```

Patch:
diff --git a/crates/router/src/core/surcharge_decision_config.rs b/crates/router/src/core/surcharge_decision_config.rs
index 0ff5f3fb373..2d817fd1afe 100644
--- a/crates/router/src/core/surcharge_decision_config.rs
+++ b/crates/router/src/core/surcharge_decision_config.rs
@@ -56,7 +56,7 @@ pub async fn upsert_surcharge_decision_config(
             message: "Invalid Request Data".to_string(),
         })
         .attach_printable("The Request has an Invalid Comparison")?;
-
+    let surcharge_cache_key = merchant_account.get_id().get_surcharge_dsk_key();
     match read_config_key {
         Ok(config) => {
             let previous_record: SurchargeDecisionManagerRecord = config
@@ -88,7 +88,7 @@ pub async fn upsert_surcharge_decision_config(
                 .attach_printable("Error serializing the config")?;
 
             algo_id.update_surcharge_config_id(key.clone());
-            let config_key = cache::CacheKind::Surcharge(key.into());
+            let config_key = cache::CacheKind::Surcharge(surcharge_cache_key.into());
             update_merchant_active_algorithm_ref(&state, &key_store, config_key, algo_id)
                 .await
                 .change_context(errors::ApiErrorResponse::InternalServerError)
@@ -125,7 +125,7 @@ pub async fn upsert_surcharge_decision_config(
                 .attach_printable("Error fetching the config")?;
 
             algo_id.update_surcharge_config_id(key.clone());
-            let config_key = cache::CacheKind::Surcharge(key.clone().into());
+            let config_key = cache::CacheKind::Surcharge(surcharge_cache_key.into());
             update_merchant_active_algorithm_ref(&state, &key_store, config_key, algo_id)
                 .await
                 .change_context(errors::ApiErrorResponse::InternalServerError)
@@ -173,7 +173,8 @@ pub async fn delete_surcharge_decision_config(
         .attach_printable("Could not decode the surcharge conditional_config algorithm")?
         .unwrap_or_default();
     algo_id.surcharge_config_algo_id = None;
-    let config_key = cache::CacheKind::Surcharge(key.clone().into());
+    let surcharge_cache_key = merchant_account.get_id().get_surcharge_dsk_key();
+    let config_key = cache::CacheKind::Surcharge(surcharge_cache_key.into());
     update_merchant_active_algorithm_ref(&state, &key_store, config_key, algo_id)
         .await
         .change_context(errors::ApiErrorResponse::InternalServerError)