use crate::serde_helpers::double_option;
use super::*;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenBatchCreateRequest {
pub file: FileReference,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<FileVersionBase>,
pub input_source: String,
pub destination_folder: DocGenBatchCreateRequestDestinationFolder,
pub output_type: String,
pub document_generation_data: Vec<DocGenDocumentGenerationData>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenDocumentGenerationData {
pub generated_file_name: String,
pub user_input: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenJobFull {
pub id: String,
pub r#type: DocGenJobType,
pub batch: DocGenBatchBase,
pub template_file: FileReference,
pub template_file_version: FileVersionBase,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub output_file: Option<Option<FileReference>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub output_file_version: Option<Option<FileVersionBase>>,
pub status: DocGenJobStatus,
pub output_type: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub failures: Option<Option<DocGenJobFailures>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
pub created_by: UserBase,
pub enterprise: EnterpriseReference,
pub source: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenJobsFull {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub next_marker: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub prev_marker: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<DocGenJobFull>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct DestinationFolderType(pub String);
impl DestinationFolderType {
pub const FOLDER: &'static str = "folder";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenBatchCreateRequestDestinationFolder {
pub r#type: DestinationFolderType,
pub id: String,
}