userlib/dto/
user_role_java_model.rs1use 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}