notion_api_client/models/
users.rs

1use crate::ids::UserId;
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
5pub struct UserCommon {
6    pub id: UserId,
7    pub name: Option<String>,
8    pub avatar_url: Option<String>,
9}
10
11#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
12pub struct Person {
13    pub email: String,
14}
15
16#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
17pub struct Bot {
18    pub email: String,
19}
20
21#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
22#[serde(tag = "type", rename_all = "snake_case")]
23pub enum User {
24    Person {
25        #[serde(flatten)]
26        common: UserCommon,
27        person: Person,
28    },
29    Bot {
30        #[serde(flatten)]
31        common: UserCommon,
32        bot: Bot,
33    },
34}