notion_client/objects/
user.rs1use serde::{Deserialize, Serialize};
2use serde_with::skip_serializing_none;
3
4#[skip_serializing_none]
5#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq, Default)]
6
7pub struct User {
8 pub object: String,
9 pub id: String,
10 #[serde(flatten)]
11 pub user_type: Option<UserType>,
12 pub name: Option<String>,
13 #[serde(rename = "avatar_url")]
14 pub avatar_url: Option<String>,
15}
16
17#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
18#[serde(tag = "type", rename_all = "snake_case")]
19pub enum UserType {
20 Person { person: Person },
21 Bot { bot: Bot },
22}
23
24#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
25pub struct Person {
26 pub email: String,
27}
28
29#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
30pub struct Bot {
31 pub owner: OwnerType,
32 pub workspace_name: String,
33}
34
35#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
36#[serde(tag = "type", rename_all = "snake_case")]
37pub enum OwnerType {
38 Workspace { workspace: bool },
39 User { workspace: bool },
40}