notion_async_api/
database.rs

1use std::collections::BTreeMap;
2
3use monostate::MustBe;
4use serde::{Deserialize, Serialize};
5
6use crate::misc::{Icon, NotionFile, Property};
7use crate::object::{Object, ObjectCommon};
8use crate::rich_text::RichText;
9
10/// Refer to:
11/// - [database](https://developers.notion.com/reference/database)
12#[derive(Serialize, Deserialize, Debug, Clone)]
13pub struct Database {
14    object: MustBe!("database"),
15
16    #[serde(flatten)]
17    pub obj: ObjectCommon,
18
19    pub properties: BTreeMap<String, Property>,
20    pub url: String,
21
22    pub public_url: Option<String>,
23    pub icon: Option<Icon>,
24    pub cover: Option<NotionFile>,
25
26    pub is_inline: bool,
27    pub title: Vec<RichText>,
28    pub description: Vec<RichText>,
29}
30
31impl Object for Database {
32    fn id(&self) -> &str {
33        &self.obj.id
34    }
35
36    fn object_type(&self) -> crate::object::ObjectType {
37        crate::object::ObjectType::Database
38    }
39}