postmasterlib/dto/
user_role_java_model.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
use chrono::NaiveDateTime;
use common::enums::r_status::RStatus;
use serde::{Deserialize, Serialize};
use uuid::Uuid;

use crate::dto::organization::Organization;
use crate::dto::user::User;
use crate::dto::user_role::UserRole;

#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
#[serde(rename_all = "camelCase")]
pub struct UserRoleJavaModel {
    pub name: Option<String>,
    pub is_collaborator: Option<i32>,
    pub priority: i32,
    pub updt: Option<NaiveDateTime>,
    pub ver: i32,
    pub is_first_login: Option<bool>,
    pub need_help: Option<bool>,
    pub parent_type: Option<i32>,
    #[serde(rename = "id")]
    pub uuid: Uuid,
    pub updu: Option<Uuid>,
    #[serde(rename = "user")]
    pub user_t: User,
    pub organization: Organization,
    pub child: Option<Uuid>,
    pub school_class: Option<Uuid>,
    pub rstatus: Option<RStatus>,
    #[serde(rename = "role")]
    pub role_name: String,
    #[serde(rename = "status")]
    pub status_name: String,
}

impl UserRoleJavaModel {
    pub fn from_user_role_and_user(ur: &UserRole, u: User, o: Organization) -> UserRoleJavaModel {
        UserRoleJavaModel {
            name: ur.name.clone(),
            is_collaborator: ur.is_collaborator.clone(),
            priority: ur.priority.clone(),
            updt: ur.updt.clone(),
            ver: ur.ver.clone(),
            is_first_login: ur.is_first_login.clone(),
            need_help: ur.need_help.clone(),
            parent_type: ur.parent_type.clone(),
            uuid: ur.uuid.clone(),
            updu: ur.updu.clone(),
            user_t: u,
            organization: o,
            child: None,
            school_class: ur.school_class.clone(),
            rstatus: ur.rstatus.clone(),
            role_name: ur.role_name.clone(),
            status_name: ur.status_name.clone(),
        }
    }
}