Issue:
[refactor]: add level support for roles

Determine a given role exists at which level, i.e., determine a entity of each roles which it is associated to.
- This will help users to perform operation accordingly.
- A profile/merchant level user cannot perform org level opertaion.
- Similarly a hierarchy can be maintained where a user (which will be associated to a particular role) can not perform any operations which are for higher entities.

Resolution:
<think>
PR Context:
- Title: refactor(role): determine level of role entity
- Merged: 2024-08-01T10:23:51Z
- Files changed: 12 files
- Commits: 3 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [x] Enhancement
- [x] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
Add entity type to roles (predefined and customs)
This can be used to determine at which level a current entity exist, and can perform operations accordingly.

### Additional Changes

- [ ] This PR modifies the API contract
- [x] This PR modifies the database schema
- [ ] This 
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** refactor(role): determine level of role entity (#5488)
Files to modify:


**crates/api_models/src/user_role/role.rs**
  Modify existing code

**crates/common_enums/src/enums.rs**
  Add:
    - enum: pub::EntityType

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

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

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

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

**crates/router/src/core/user_role/role.rs**
  Modify existing code

**crates/router/src/db/role.rs**
  Modify existing code

**crates/router/src/services/authorization/roles.rs**
  Add:
    - function: pub::get_entity_type

**crates/router/src/services/authorization/roles/predefined_roles.rs**
  Modify existing code