misskey_api/model/
drive.rs

1use 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);