userlib/dto/
user_role_java_model.rs

1use common::enums::roles::Roles;
2use common::enums::status::Status;
3use serde::{Deserialize, Serialize};
4use uuid::Uuid;
5
6use crate::dto::organization_response::OrganizationResponse;
7use crate::dto::user_response::UserResponse;
8use crate::dto::user_role_response::UserRoleResponse;
9
10#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
11#[serde(rename_all = "camelCase")]
12pub struct UserRoleJavaModel {
13    pub name: Option<String>,
14    pub is_collaborator: Option<i32>,
15    pub priority: i32,
16    pub is_first_login: Option<bool>,
17    pub need_help: Option<bool>,
18    pub parent_type: Option<i32>,
19    pub id: Uuid,
20    #[serde(rename = "user")]
21    pub user_t: UserResponse,
22    pub organization: OrganizationResponse,
23    pub child: Option<Uuid>,
24    pub school_class: Option<Uuid>,
25    #[serde(rename = "role")]
26    pub role_name: Roles,
27    pub status: Status,
28}
29
30impl UserRoleJavaModel {
31    pub fn from_user_role_and_user(
32        ur: &UserRoleResponse,
33        u: UserResponse,
34        o: OrganizationResponse,
35    ) -> UserRoleJavaModel {
36        UserRoleJavaModel {
37            name: ur.name.clone(),
38            is_collaborator: ur.is_collaborator.clone(),
39            priority: ur.priority.clone(),
40            is_first_login: ur.is_first_login.clone(),
41            need_help: ur.need_help.clone(),
42            parent_type: ur.parent_type.clone(),
43            id: ur.id.clone(),
44            user_t: u,
45            organization: o,
46            child: None,
47            school_class: ur.school_class.clone(),
48            role_name: ur.role_name.clone(),
49            status: ur.status.clone(),
50        }
51    }
52}