refactor: Add OLAP feature for replica database

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

- [ ] Bugfix
- [ ] New feature
- [x] Enhancement
- [ ] Refactoring
- [ ] Dependency updates

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


### Additional Changes

- [ ] This PR modifies the database schema
- [x] This PR modifies application configuration/environment variables

<!-- Provide links to the files with corresponding changes -->


## Motivation and Context

Added a feature called OLAP which enables us to add read replica database in the application and use it wherever we want


## How did you test it?

Run `cargo r --features olap` and check if it can create a connection to read replica database


## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed submitted code
- [ ] I added unit tests for my changes where possible
- [ ] I added a [CHANGELOG](/CHANGELOG.md) entry if applicable

<think>
PR Context:
- Title: feat(core): Add payments update-intent API for v2
- Merged: 2024-12-09T07:45:58Z
- Files changed: 23 files
- Commits: 30 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 -->

Added `update-intent` API for payments

### Additional Changes

- [x] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide 
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(core): Add payments update-intent API for v2 (#6490)
Co-authored-by: hyperswitch-bot[bot] <1485
Files to modify:


**crates/api_models/src/payments.rs**
  Add:
    - function: pub::order_amount
    - function: pub::currency
    - function: pub::shipping_cost
    - function: pub::order_tax_amount
    - function: pub::skip_external_tax_calculation
    - function: pub::skip_surcharge_calculation
    - function: pub::surcharge_amount
    - function: pub::tax_on_surcharge
    - struct: pub::PaymentsUpdateIntentRequest
    - struct: pub::AmountDetailsUpdate
    - impl: impl AmountDetailsUpdate

**crates/common_enums/src/enums.rs**
  Add:
    - function: private::from
    - function: pub::as_bool
    - function: private::from
    - function: pub::as_bool
    - impl: impl From<Option<bool>> for TaxCalculationOverride
    - impl: impl TaxCalculationOverride
    - impl: impl From<Option<bool>> for SurchargeCalculationOverride
    - impl: impl SurchargeCalculationOverride

**crates/diesel_models/src/kv.rs**
  Add:
    - struct: pub::PaymentIntentUpdateMems

**crates/diesel_models/src/payment_intent.rs**
  Remove:
    - function: pub::apply_changeset
    - function: private::from
    - enum: pub::PaymentIntentUpdate
    - impl: impl PaymentIntentUpdate
    - impl: impl From<PaymentIntentUpdate> for PaymentIntentUpdateInternal

**crates/hyperswitch_domain_models/src/lib.rs**
  Remove:
    - function: private::from
    - function: private::from
    - impl: impl From<common_enums::SurchargeCalculationOverride> for payments::SurchargeCalculationOverride
    - impl: impl From<common_enums::TaxCalculationOverride> for payments::TaxCalculationOverride

**crates/hyperswitch_domain_models/src/payments.rs**
  Remove:
    - function: private::from
    - function: private::from
    - enum: pub::TaxCalculationOverride
    - enum: pub::SurchargeCalculationOverride
    - impl: impl From<Option<bool>> for TaxCalculationOverride
    - impl: impl From<Option<bool>> for SurchargeCalculationOverride

**crates/hyperswitch_domain_models/src/payments/payment_intent.rs**
  Remove:
    - struct: pub::PaymentIntentUpdateInternal

**crates/hyperswitch_domain_models/src/router_flow_types/payments.rs**
  Add:
    - struct: pub::PaymentUpdateIntent

**crates/openapi/src/openapi_v2.rs**
  Modify existing code

**crates/openapi/src/routes/payments.rs**
  Add:
    - function: pub::payments_update_intent

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

**crates/router/src/core/payments/operations.rs**
  Add:
    - mod: pub::payment_update_intent

**crates/router/src/core/payments/operations/payment_update_intent.rs**
  Add:
    - function: private::validate_status_for_operation
    - function: private::to_validate_request
    - function: private::to_get_tracker
    - function: private::to_domain
    - function: private::to_update_tracker
    - function: private::to_validate_request
    - function: private::to_get_tracker
    - function: private::to_domain
    - function: private::to_update_tracker
    - function: private::get_trackers
    - function: private::update_trackers
    - function: private::validate_request
    - function: private::get_customer_details
    - function: private::make_pm_data
    - function: private::perform_routing
    - function: private::guard_payment_against_blocklist
    - struct: pub::PaymentUpdateIntent
    - impl: impl ValidateStatusForOperation for PaymentUpdateIntent
    - impl: impl Operation<F, PaymentsUpdateIntentRequest> for &PaymentUpdateIntent
    - impl: impl Operation<F, PaymentsUpdateIntentRequest> for PaymentUpdateIntent
    - impl: impl GetTracker<F, payments::PaymentIntentData<F>, PaymentsUpdateIntentRequest> for PaymentUpdateIntent
    - impl: impl UpdateTracker<F, payments::PaymentIntentData<F>, PaymentsUpdateIntentRequest> for PaymentUpdateIntent
    - impl: impl ValidateRequest<F, PaymentsUpdateIntentRequest, payments::PaymentIntentData<F>> for PaymentUpdateIntent
    - impl: impl Domain<F, PaymentsUpdateIntentRequest, payments::PaymentIntentData<F>> for PaymentUpdateIntent

**crates/router/src/core/payments/transformers.rs**
  Remove:
    - function: private::foreign_from
    - function: private::foreign_from
    - function: private::foreign_from
    - function: private::foreign_from
    - impl: impl ForeignFrom<common_enums::TaxCalculationOverride> for hyperswitch_domain_models::payments::TaxCalculationOverride
    - impl: impl ForeignFrom<hyperswitch_domain_models::payments::TaxCalculationOverride> for common_enums::TaxCalculationOverride
    - impl: impl ForeignFrom<common_enums::SurchargeCalculationOverride> for hyperswitch_domain_models::payments::SurchargeCalculationOverride
    - impl: impl ForeignFrom<hyperswitch_domain_models::payments::SurchargeCalculationOverride> for common_enums::SurchargeCalculationOverride

**crates/router/src/routes/app.rs**
  Modify existing code

**crates/router/src/routes/lock_utils.rs**
  Modify existing code

**crates/router/src/routes/payments.rs**
  Modify existing code

**crates/router/src/types/api/payments.rs**
  Modify existing code

**crates/router_env/src/logger/types.rs**
  Modify existing code

**crates/storage_impl/src/payments/payment_intent.rs**
  Modify existing code
{"issue_number": 4, "pr_number": 6490, "commits_count": 1, "files_changed": 23, "response_length": 6023, "file_count": 22, "needs_breakdown": true}