slack_morphism_models/common/
user.rs1use crate::common::*;
2
3use rsb_derive::Builder;
4use serde::{Deserialize, Serialize};
5use serde_with::skip_serializing_none;
6
7#[skip_serializing_none]
8#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
9pub struct SlackUser {
10 pub id: SlackUserId,
11 pub team_id: SlackTeamId,
12 pub name: Option<String>,
13 pub locale: Option<SlackLocale>,
14 pub profile: Option<SlackUserProfile>,
15 #[serde(flatten)]
16 pub flags: SlackUserFlags,
17 pub tz: Option<String>,
18 pub tz_label: Option<String>,
19 pub tz_offset: Option<i32>,
20 pub updated: Option<SlackDateTime>,
21 pub deleted: Option<bool>,
22 pub color: Option<SlackColor>,
23 pub real_name: Option<String>,
24}
25
26#[skip_serializing_none]
27#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
28pub struct SlackUserProfile {
29 pub id: Option<SlackUserId>,
30 pub display_name: Option<String>,
31 pub real_name: Option<String>,
32 pub real_name_normalized: Option<String>,
33 pub avatar_hash: Option<SlackAvatarHash>,
34 pub status_text: Option<String>,
35 pub status_expiration: Option<SlackDateTime>,
36 pub status_emoji: Option<SlackEmoji>,
37 pub display_name_normalized: Option<String>,
38 pub email: Option<EmailAddress>,
39 #[serde(flatten)]
40 pub icon: Option<SlackIcon>,
41 pub team: Option<SlackTeamId>,
42}
43
44#[skip_serializing_none]
45#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
46pub struct SlackUserFlags {
47 pub is_admin: Option<bool>,
48 pub is_app_user: Option<bool>,
49 pub is_bot: Option<bool>,
50 pub is_invited_user: Option<bool>,
51 pub is_owner: Option<bool>,
52 pub is_primary_owner: Option<bool>,
53 pub is_restricted: Option<bool>,
54 pub is_stranger: Option<bool>,
55 pub is_ultra_restricted: Option<bool>,
56 pub has_2fa: Option<bool>,
57}
58
59#[skip_serializing_none]
60#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
61pub struct SlackBasicUserInfo {
62 pub id: SlackUserId,
63 pub team_id: Option<SlackTeamId>,
64 pub username: Option<String>,
65}
66
67#[derive(Debug, Eq, PartialEq, Hash, Clone, Serialize, Deserialize, ValueStruct)]
68pub struct SlackAvatarHash(pub String);