1mod 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 pub created_time: DateTime<Utc>,
36 pub created_by: UserCommon,
38 pub last_edited_time: DateTime<Utc>,
40 pub last_edited_by: UserCommon,
42 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}