Bug: [FEATURE] [PAZE] Add amount, currency and email to paze session response



### Feature Description

Add amount, currency and email to paze session response

### Possible Implementation

{
            "wallet_name": "paze",
            "client_id": "HIDDEN",
            "client_name": "HIDDEN",
            "client_profile_id": "HIDDEN",
            "transaction_currency_code": "USD",
            "transaction_amount": "12.34",
            "email_address": "guest@example.com"
}

### Have you spent some time checking if this feature request 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!
diff --git a/api-reference-v2/openapi_spec.json b/api-reference-v2/openapi_spec.json
index bd9de3a2962..c85bfad3326 100644
--- a/api-reference-v2/openapi_spec.json
+++ b/api-reference-v2/openapi_spec.json
@@ -16199,7 +16199,9 @@
         "required": [
           "client_id",
           "client_name",
-          "client_profile_id"
+          "client_profile_id",
+          "transaction_currency_code",
+          "transaction_amount"
         ],
         "properties": {
           "client_id": {
@@ -16213,6 +16215,21 @@
           "client_profile_id": {
             "type": "string",
             "description": "Paze Client Profile ID"
+          },
+          "transaction_currency_code": {
+            "$ref": "#/components/schemas/Currency"
+          },
+          "transaction_amount": {
+            "type": "string",
+            "description": "The transaction amount",
+            "example": "38.02"
+          },
+          "email_address": {
+            "type": "string",
+            "description": "Email Address",
+            "example": "johntest@test.com",
+            "nullable": true,
+            "maxLength": 255
           }
         }
       },
diff --git a/crates/api_models/src/payments.rs b/crates/api_models/src/payments.rs
index 61c7911170a..913cb1810ad 100644
--- a/crates/api_models/src/payments.rs
+++ b/crates/api_models/src/payments.rs
@@ -5578,6 +5578,15 @@ pub struct PazeSessionTokenResponse {
     pub client_name: String,
     /// Paze Client Profile ID
     pub client_profile_id: String,
+    /// The transaction currency code
+    #[schema(value_type = Currency, example = "USD")]
+    pub transaction_currency_code: api_enums::Currency,
+    /// The transaction amount
+    #[schema(value_type = String, example = "38.02")]
+    pub transaction_amount: StringMajorUnit,
+    /// Email Address
+    #[schema(max_length = 255, value_type = Option<String>, example = "johntest@test.com")]
+    pub email_address: Option<Email>,
 }
 
 #[derive(Debug, Clone, Eq, PartialEq, serde::Serialize, ToSchema)]
diff --git a/crates/hyperswitch_domain_models/src/router_request_types.rs b/crates/hyperswitch_domain_models/src/router_request_types.rs
index d29672058f8..bbeb041e74e 100644
--- a/crates/hyperswitch_domain_models/src/router_request_types.rs
+++ b/crates/hyperswitch_domain_models/src/router_request_types.rs
@@ -816,7 +816,7 @@ pub struct PaymentsSessionData {
     pub country: Option<common_enums::CountryAlpha2>,
     pub surcharge_details: Option<SurchargeDetails>,
     pub order_details: Option<Vec<api_models::payments::OrderDetailsWithAmount>>,
-
+    pub email: Option<pii::Email>,
     // Minor Unit amount for amount frame work
     pub minor_amount: MinorUnit,
 }
diff --git a/crates/router/src/core/payments/flows/session_flow.rs b/crates/router/src/core/payments/flows/session_flow.rs
index 736ffdd7b8b..ba8054696a1 100644
--- a/crates/router/src/core/payments/flows/session_flow.rs
+++ b/crates/router/src/core/payments/flows/session_flow.rs
@@ -511,7 +511,13 @@ fn create_paze_session_token(
             field_name: "connector_wallets_details".to_string(),
             expected_format: "paze_metadata_format".to_string(),
         })?;
-
+    let required_amount_type = StringMajorUnitForConnector;
+    let transaction_currency_code = router_data.request.currency;
+    let transaction_amount = required_amount_type
+        .convert(router_data.request.minor_amount, transaction_currency_code)
+        .change_context(errors::ApiErrorResponse::PreconditionFailed {
+            message: "Failed to convert amount to string major unit for paze".to_string(),
+        })?;
     Ok(types::PaymentsSessionRouterData {
         response: Ok(types::PaymentsResponseData::SessionResponse {
             session_token: payment_types::SessionToken::Paze(Box::new(
@@ -519,6 +525,9 @@ fn create_paze_session_token(
                     client_id: paze_wallet_details.data.client_id,
                     client_name: paze_wallet_details.data.client_name,
                     client_profile_id: paze_wallet_details.data.client_profile_id,
+                    transaction_currency_code,
+                    transaction_amount,
+                    email_address: router_data.request.email.clone(),
                 },
             )),
         }),
diff --git a/crates/router/src/core/payments/transformers.rs b/crates/router/src/core/payments/transformers.rs
index 66e5c996d34..1e3472fc3c1 100644
--- a/crates/router/src/core/payments/transformers.rs
+++ b/crates/router/src/core/payments/transformers.rs
@@ -2644,6 +2644,7 @@ impl<F: Clone> TryFrom<PaymentAdditionalData<'_, F>> for types::PaymentsSessionD
             ),
             order_details,
             surcharge_details: payment_data.surcharge_details,
+            email: payment_data.email,
         })
     }
 }
@@ -2703,6 +2704,7 @@ impl<F: Clone> TryFrom<PaymentAdditionalData<'_, F>> for types::PaymentsSessionD
                 },
             ),
             order_details,
+            email: payment_data.email,
             surcharge_details: payment_data.surcharge_details,
         })
     }

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

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

## Description
<!-- Describe your changes in detail -->
Add amount, currency and email to paze session response

### 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).
-->
https://github.com/juspay/hyperswitch/issues/6410

## 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)?
-->
Session Request Paze:
```
curl --location 'http://localhost:8080/payments/session_tokens' \
--header 'Content-Type: application/json' \
--header 'api-key: API_KEY_HERE' \
--data '{
    "payment_id": "pay_Omdaxo733MC34fLvCfYw",
    "wallets": [],
    "client_secret": "pay_Omdaxo733MC34fLvCfYw_secret_ak2iLU1A5E6PK6XqqY6h"
}'
```
Response:
```
{
    "payment_id": "pay_Omdaxo733MC34fLvCfYw",
    "client_secret": "pay_Omdaxo733MC34fLvCfYw_secret_ak2iLU1A5E6PK6XqqY6h",
    "session_token": [
        {
            "wallet_name": "paze",
            "client_id": "HIDDEN",
            "client_name": "HIDDEN",
            "client_profile_id": "HIDDEN",
            "transaction_currency_code": "USD",
            "transaction_amount": "12.34",
            "email_address": "guest@example.com"
        }
    ]
}
```

## 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
