Bug: bug(events): api events with event_type `user` aren't parsed correctly in clickhouse



The api events with events type user aren't parsed correctly in the user table,
this happens due to there being duplicate keys in the json representation which is treated as invalid json by clickhouse

```json
{
    "key_a": "abc",
    "key_b": "def",
    "key_b": "ghi"
}
```

This is treated as invalid json and the entire event is dropped by clickhouse,

in this case we have 
```rs
pub enum ApiEventsType {
.........
    User {
        merchant_id: String, // This merchant_id field ends up being duplicate and causes invalid json
        user_id: String,
    },
......
}
```

for now we can remove the merchant_id from this enum variant to solve this issue

diff --git a/crates/api_models/src/events/user.rs b/crates/api_models/src/events/user.rs
index c41f52a93ea..287bafaace8 100644
--- a/crates/api_models/src/events/user.rs
+++ b/crates/api_models/src/events/user.rs
@@ -24,7 +24,6 @@ use crate::user::{
 impl ApiEventMetric for DashboardEntryResponse {
     fn get_api_event_type(&self) -> Option<ApiEventsType> {
         Some(ApiEventsType::User {
-            merchant_id: self.merchant_id.clone(),
             user_id: self.user_id.clone(),
         })
     }
@@ -34,7 +33,6 @@ impl ApiEventMetric for DashboardEntryResponse {
 impl ApiEventMetric for VerifyTokenResponse {
     fn get_api_event_type(&self) -> Option<ApiEventsType> {
         Some(ApiEventsType::User {
-            merchant_id: self.merchant_id.clone(),
             user_id: self.user_email.peek().to_string(),
         })
     }
diff --git a/crates/common_utils/src/events.rs b/crates/common_utils/src/events.rs
index 1052840dbc8..ef5502d8b5b 100644
--- a/crates/common_utils/src/events.rs
+++ b/crates/common_utils/src/events.rs
@@ -29,8 +29,6 @@ pub enum ApiEventsType {
         customer_id: id_type::CustomerId,
     },
     User {
-        //specified merchant_id will overridden on global defined
-        merchant_id: String,
         user_id: String,
     },
     PaymentMethodList {
diff --git a/docker-compose.yml b/docker-compose.yml
index d16f946a6e5..57f7ccde1cd 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -378,6 +378,8 @@ services:
       - "8123:8123"
     volumes:
       - ./crates/analytics/docs/clickhouse/scripts:/docker-entrypoint-initdb.d
+    environment:
+      - TZ=Asia/Kolkata
     profiles:
       - olap
     ulimits:

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

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

## Description
fix(events): Correct parsing of API events with user event_type for ClickHouse (#4987)

- Removed redundant `merchant_id` to handle user events correctly in ClickHouse.
- Updated Docker Compose to display times in IST timezone for ClickHouse.


### 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?
By switching the merchant from localhost dashboard itself.
![image](https://github.com/juspay/hyperswitch/assets/89402434/22394100-d35e-4ec2-8cef-94f1ac2a8e84)


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