use crate::serde_helpers::double_option;
use super::*;
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetIdSort(pub String);
impl GetIdSort {
pub const ID: &'static str = "id";
pub const NAME: &'static str = "name";
pub const DATE: &'static str = "date";
pub const SIZE: &'static str = "size";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutIdFolderUploadEmail {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access: Option<FolderUploadEmailAccess>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateFolderRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sync_state: Option<FolderFullSyncState>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_non_owners_invite: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<PutIdParent>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link: Option<PutIdSharedLink>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub folder_upload_email: Option<Option<PutIdFolderUploadEmail>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_restricted_to_enterprise: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub collections: Option<Option<Vec<CommentItem>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_non_owners_view_collaborators: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateFolderRequest {
pub name: String,
pub parent: AttributesParent,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub folder_upload_email: Option<PutIdFolderUploadEmail>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sync_state: Option<FolderFullSyncState>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CopyFolderRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
pub parent: AttributesParent,
}