1use serde::{Deserialize, Serialize};
2use serde_with::skip_serializing_none;
3
4#[skip_serializing_none]
5#[derive(Deserialize, Serialize, Debug, Default, PartialEq)]
6pub struct UserProfile {
7 pub first_name: Option<String>,
8 pub last_name: Option<String>,
9 pub real_name: Option<String>,
10 pub real_name_normalized: Option<String>,
11 pub display_name: Option<String>,
12 pub display_name_normalized: Option<String>,
13 pub email: Option<String>,
14 pub skype: Option<String>,
15 pub phone: Option<String>,
16 pub image_24: Option<String>,
17 pub image_32: Option<String>,
18 pub image_48: Option<String>,
19 pub image_72: Option<String>,
20 pub image_192: Option<String>,
21 pub image_512: Option<String>,
22 pub mage_original: Option<String>,
23 pub title: Option<String>,
24 pub bot_id: Option<String>,
25 pub api_app_id: Option<String>,
26 pub status_text: Option<String>,
27 pub status_emoji: Option<String>,
28 pub status_expiration: Option<i32>,
29 pub team: Option<String>,
30 pub always_active: Option<bool>,
31 pub status_text_canonical: Option<String>,
32}
33
34#[skip_serializing_none]
35#[derive(Deserialize, Serialize, Debug, Default, PartialEq)]
36pub struct User {
37 pub id: Option<String>,
38 pub team_id: Option<String>,
39 pub name: Option<String>,
40 pub deleted: Option<bool>,
41 pub color: Option<String>,
42 pub real_name: Option<String>,
43 pub tz: Option<String>,
44 pub tz_label: Option<String>,
45 pub tz_offset: Option<i32>,
46 pub profile: Option<UserProfile>,
47 pub is_bot: Option<bool>,
48 pub is_admin: Option<bool>,
49 pub is_owner: Option<bool>,
50 pub is_primary_owner: Option<bool>,
51 pub is_restricted: Option<bool>,
52 pub is_ultra_restricted: Option<bool>,
53 pub is_stranger: Option<bool>,
54 pub is_app_user: Option<bool>,
55 pub is_invited_user: Option<bool>,
56 pub updated: Option<i32>,
57 pub is_email_confirmed: Option<bool>,
58 pub who_can_share_contact_card: Option<String>,
59}