Issue:
feat(users): Add email domain based restriction for dashboard entry APIs

Currently Zurich uses okta and they use a specific `auth_id` to see the okta login method.

If any user doesn't use `auth_id`, then the user will see the default auth methods that Hyperswitch has and they will be use them to login, which we should restrict for zurich users.

Resolution:
<think>
PR Context:
- Title: feat(users): Add email domain based restriction for dashboard entry APIs
- Merged: 2024-12-30T07:37:08Z
- Files changed: 14 files
- Commits: 8 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [x] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
There will be a mapping of email domain and auth methods.
This PR will restrict users to enter into the dashboard based on the email domain.


### Additional Changes

- [x] This PR modifies the API contract
- [x] This PR modifies the da
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(users): Add email domain based restriction for dashboard entry APIs (#6940)
Files to modify:


**crates/api_models/src/user.rs**
  Remove:
    - struct: pub::UpdateUserAuthenticationMethodRequest
  Add:
    - enum: pub::UpdateUserAuthenticationMethodRequest

**crates/diesel_models/src/query/user_authentication_method.rs**
  Add:
    - function: pub::list_user_authentication_methods_for_email_domain

**crates/diesel_models/src/schema.rs**
  Modify existing code

**crates/diesel_models/src/schema_v2.rs**
  Modify existing code

**crates/diesel_models/src/user_authentication_method.rs**
  Modify existing code

**crates/router/src/core/errors/user.rs**
  Modify existing code

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

**crates/router/src/db/kafka_store.rs**
  Add:
    - function: private::list_user_authentication_methods_for_email_domain

**crates/router/src/db/user_authentication_method.rs**
  Add:
    - function: private::list_user_authentication_methods_for_email_domain
    - function: private::list_user_authentication_methods_for_email_domain

**crates/router/src/types/domain/user.rs**
  Add:
    - function: pub::extract_domain

**crates/router/src/types/domain/user/user_authentication_method.rs**
  Modify existing code

**crates/router/src/utils/user.rs**
  Add:
    - function: pub::validate_email_domain_auth_type_using_db