notion_sdk/database/
mod.rs1pub mod properties;
16
17use crate::common::file::FileOrEmojiObject;
18use crate::common::parent::Parent;
19use crate::common::rich_text::RichText;
20use crate::database::id::DatabaseId;
21use crate::database::properties::{Properties, PropertyConfiguration};
22use crate::user::UserCommon;
23use chrono::{DateTime, Utc};
24use serde::{Deserialize, Serialize};
25use std::collections::HashMap;
26
27mod aka;
28mod api;
29pub mod date;
30pub mod files;
31pub mod formula;
32pub mod id;
33pub mod number;
34pub mod relation;
35pub mod rollup;
36pub mod select;
37pub mod status;
38
39#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Copy, Clone)]
40#[serde(rename_all = "lowercase")]
41pub enum Color {
42 Default,
43 Gray,
44 Brown,
45 Orange,
46 Yellow,
47 Green,
48 Blue,
49 Purple,
50 Pink,
51 Red,
52}
53
54#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Clone)]
57pub struct Database {
58 pub id: DatabaseId,
60 pub icon: Option<FileOrEmojiObject>,
61 pub created_time: DateTime<Utc>,
63 pub last_edited_time: DateTime<Utc>,
65 pub created_by: UserCommon,
66 pub last_edited_by: UserCommon,
67 pub title: Vec<RichText>,
69 pub properties: HashMap<String, PropertyConfiguration>,
77 pub archived: bool,
79 pub is_inline: bool,
80 pub description: Vec<RichText>,
81 pub url: String,
82 pub parent: Parent,
83}
84
85#[derive(Serialize, Debug, Eq, PartialEq)]
86pub struct CreateDatabase {
87 pub parent: Parent,
88 pub title: Vec<RichText>,
89 pub properties: Properties,
90}
91
92#[derive(Serialize, Debug, Eq, PartialEq)]
93pub struct UpdateDatabase {
94 pub title: Vec<RichText>,
95 pub properties: Properties,
96}