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 pub avator_url: Option<String>,
14}
15
16#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
17#[serde(tag = "type", rename_all = "snake_case")]
18pub enum UserType {
19 Person { person: Person },
20 Bot { bot: Bot },
21}
22
23#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
24pub struct Person {
25 pub email: String,
26}
27
28#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
29pub struct Bot {
30 pub owner: OwnerType,
31 pub workspace_name: String,
32}
33
34#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
35#[serde(tag = "type", rename_all = "snake_case")]
36pub enum OwnerType {
37 Workspace { workspace: bool },
38 User { workspace: bool },
39}