use serde::{Deserialize, Serialize};
use super::DiscussionCitation;
#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct DiscussionAttachmentValidation {
pub accepted_mime_types: Option<Vec<String>>,
pub max_file_count: Option<u32>,
pub max_file_size: Option<u64>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct DiscussionUploadedFile {
pub url: String,
pub name: String,
pub mime: Option<String>,
pub size_bytes: Option<u64>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct DiscussionAttachmentDraft {
pub id: String,
pub name: String,
pub mime: Option<String>,
pub size_bytes: Option<u64>,
pub uploaded_url: Option<String>,
}
impl DiscussionAttachmentDraft {
pub fn new(id: impl Into<String>, name: impl Into<String>) -> Self {
Self {
id: id.into(),
name: name.into(),
mime: None,
size_bytes: None,
uploaded_url: None,
}
}
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct DiscussionComposerSubmit {
pub body_markdown: String,
pub parent_id: Option<String>,
pub attachments: Vec<DiscussionAttachmentDraft>,
pub citations: Vec<DiscussionCitation>,
}