misskey_api/model/
drive.rs1use crate::model::{id::Id, user::User};
2
3use chrono::{DateTime, Utc};
4use mime::Mime;
5use serde::{Deserialize, Serialize};
6use url::Url;
7
8#[derive(Serialize, Deserialize, Debug, Clone)]
9#[serde(rename_all = "camelCase")]
10pub struct DriveFile {
11 pub id: Id<DriveFile>,
12 pub created_at: DateTime<Utc>,
13 pub name: String,
14 #[serde(rename = "type", with = "crate::serde::string")]
15 pub type_: Mime,
16 pub md5: String,
17 pub size: u64,
18 pub url: Option<Url>,
19 pub folder_id: Option<Id<DriveFolder>>,
20 #[cfg(feature = "12-48-0")]
21 #[cfg_attr(docsrs, doc(cfg(feature = "12-48-0")))]
22 pub comment: Option<String>,
23 #[cfg(feature = "12-48-0")]
24 #[cfg_attr(docsrs, doc(cfg(feature = "12-48-0")))]
25 pub user_id: Option<Id<User>>,
26 pub user: Option<User>,
27 #[serde(default)]
28 pub folder: Option<DriveFolder>,
29 pub is_sensitive: bool,
30}
31
32impl_entity!(DriveFile);
33
34#[derive(Serialize, Deserialize, Debug, Clone)]
35#[serde(rename_all = "camelCase")]
36pub struct DriveFolder {
37 pub id: Id<DriveFolder>,
38 pub created_at: DateTime<Utc>,
39 pub name: String,
40 #[serde(default)]
41 pub folders_count: Option<u64>,
42 #[serde(default)]
43 pub files_count: Option<u64>,
44 pub parent_id: Option<Id<DriveFolder>>,
45 #[serde(default)]
46 pub parent: Option<Box<DriveFolder>>,
47}
48
49impl_entity!(DriveFolder);