Issue:
fix(mandate): add mandate_id column in payment_attempt table

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [x] Enhancement
- [ ] Refactoring
- [ ] Dependency updates

## Description
This change includes
- Adding a new column `mandate_id` in the table `payment_attempt`
- Similarly, adding `mandate_id` field in `PaymentAttempt` structs (which include `New`, `Update` variants)
- Storing `mandate_id`, if generated during payment creation, to the `PaymentAttempt` table (in `PostUpdateTracker`)
<!-- Describe your changes in detail -->


### Additional Changes

- [x] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!-- Provide links to the files with corresponding changes -->

## Motivation and Context
Originally, we didn't have any way to link a payment that is made to a specific mandate. Which makes it impossible to get the related mandate_id while performing a payment sync operation. This change will allow, the payments core to have access to the mandate that is related to the specific payment attempt while performing payment sync and further mandate related functionalities.
<!--
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 its 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)?
-->


## 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


Resolution:
<think>
PR Context:
- Title: fix(router): fixed integrity check failures in case of 3ds flow in sync flow
- Merged: 2024-07-12T00:04:26Z
- Files changed: 12 files
- Commits: 5 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [x] Bugfix

## Description
<!-- Describe your changes in detail -->
we have implemented integrity checks for stripe, we have implemented integrity in authorise, sync, capture and refund, refund sync

but, where in sync flow we check amount, currency and amount_captured.

the bug is in 3ds flow, where after the transaction is completed we do a sync with the connector, but our trackers are not updated at this point.

In 
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** fix(router): fixed integrity check failures in case of 3ds flow in sync flow (#5279)
Files to modify:


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

**crates/hyperswitch_interfaces/src/integrity.rs**
  Add:
    - function: private::format_mismatch

**crates/router/src/connector/stripe.rs**
  Modify existing code

**crates/router/src/connector/utils.rs**
  Modify existing code

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

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

**crates/router/tests/connectors/bambora.rs**
  Modify existing code

**crates/router/tests/connectors/forte.rs**
  Modify existing code

**crates/router/tests/connectors/nexinets.rs**
  Modify existing code

**crates/router/tests/connectors/paypal.rs**
  Modify existing code

**crates/router/tests/connectors/utils.rs**
  Modify existing code

**crates/router/tests/connectors/zen.rs**
  Modify existing code