box_open_sdk/models/schemas/
docgen_template.rs1use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct DocGenTag {
9 pub tag_content: String,
10 pub tag_type: DocGenTagTagType,
11 pub json_paths: Vec<String>,
12}
13
14#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
15pub struct DocGenTags {
16 #[serde(default, skip_serializing_if = "Option::is_none")]
17 pub limit: Option<i64>,
18 #[serde(
19 default,
20 skip_serializing_if = "Option::is_none",
21 deserialize_with = "double_option"
22 )]
23 pub next_marker: Option<Option<String>>,
24 #[serde(
25 default,
26 skip_serializing_if = "Option::is_none",
27 deserialize_with = "double_option"
28 )]
29 pub prev_marker: Option<Option<String>>,
30 #[serde(default, skip_serializing_if = "Option::is_none")]
31 pub entries: Option<Vec<DocGenTag>>,
32}
33
34#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
35pub struct DocGenTemplate {
36 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub file: Option<FileReference>,
38 #[serde(
39 default,
40 skip_serializing_if = "Option::is_none",
41 deserialize_with = "double_option"
42 )]
43 pub file_name: Option<Option<String>>,
44}
45
46#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
47pub struct DocGenTemplateBase {
48 #[serde(default, skip_serializing_if = "Option::is_none")]
49 pub file: Option<FileReference>,
50}
51
52#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
53pub struct DocGenTemplateCreateRequest {
54 pub file: FileReference,
55}
56
57#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
58pub struct DocGenTemplates {
59 #[serde(default, skip_serializing_if = "Option::is_none")]
60 pub limit: Option<i64>,
61 #[serde(
62 default,
63 skip_serializing_if = "Option::is_none",
64 deserialize_with = "double_option"
65 )]
66 pub next_marker: Option<Option<String>>,
67 #[serde(
68 default,
69 skip_serializing_if = "Option::is_none",
70 deserialize_with = "double_option"
71 )]
72 pub prev_marker: Option<Option<String>>,
73 #[serde(default, skip_serializing_if = "Option::is_none")]
74 pub entries: Option<Vec<DocGenTemplate>>,
75}
76
77#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
78#[serde(transparent)]
79pub struct DocGenTagTagType(pub String);
80
81impl DocGenTagTagType {
82 pub const TEXT: &'static str = "text";
83 pub const ARITHMETIC: &'static str = "arithmetic";
84 pub const CONDITIONAL: &'static str = "conditional";
85 pub const FOR_LOOP: &'static str = "for-loop";
86 pub const TABLE_LOOP: &'static str = "table-loop";
87 pub const IMAGE: &'static str = "image";
88}