notion_sdk/pages/
mod.rs

1//!
2//! # Notion Page
3//!
4//! ## Examples
5//! ```rust,no_run
6//! use notion_sdk::common::parent::Parent;
7//! use notion_sdk::database::properties::Properties;
8//! use notion_sdk::pages::CreatePage;
9//! let page = CreatePage{
10//!     icon: None,
11//!     parent: Parent::Workspace,
12//!     properties: Properties { properties: Default::default()},
13//!     children: vec![],
14//! };
15//! ```
16mod aka;
17mod api;
18mod builder;
19pub mod id;
20
21use crate::block::Block;
22use crate::common::file::FileOrEmojiObject;
23use crate::common::parent::Parent;
24use crate::database::properties::Properties;
25use crate::pages::id::PageId;
26use crate::user::UserCommon;
27use chrono::{DateTime, Utc};
28use serde::{Deserialize, Serialize};
29
30#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Clone)]
31pub struct Page {
32    pub id: PageId,
33    pub icon: Option<FileOrEmojiObject>,
34    /// Date and time when this page was created.
35    pub created_time: DateTime<Utc>,
36    /// User who created the page.
37    pub created_by: UserCommon,
38    /// Date and time when this page was updated.
39    pub last_edited_time: DateTime<Utc>,
40    /// User who last edited the page.
41    pub last_edited_by: UserCommon,
42    /// The archived status of the page.
43    pub archived: bool,
44    pub properties: Properties,
45    pub parent: Parent,
46}
47
48#[derive(Serialize, Debug, Eq, PartialEq)]
49pub struct CreatePage {
50    pub icon: Option<FileOrEmojiObject>,
51    pub parent: Parent,
52    pub properties: Properties,
53    pub children: Vec<Block>,
54}
55
56#[derive(Serialize, Debug, Eq, PartialEq)]
57pub struct UpdatePage {
58    pub icon: Option<FileOrEmojiObject>,
59    pub properties: Properties,
60    pub archived: bool,
61}