1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct CustomField {
15 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
16 pub id: Option<uuid::Uuid>,
17 #[serde(rename = "object_type", skip_serializing_if = "Option::is_none")]
18 pub object_type: Option<String>,
19 #[serde(rename = "display", skip_serializing_if = "Option::is_none")]
21 pub display: Option<String>,
22 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
23 pub url: Option<String>,
24 #[serde(rename = "natural_slug", skip_serializing_if = "Option::is_none")]
25 pub natural_slug: Option<String>,
26 #[serde(rename = "content_types")]
27 pub content_types: Vec<String>,
28 #[serde(rename = "type")]
29 pub r#type: Box<crate::models::CustomFieldType>,
30 #[serde(rename = "filter_logic", skip_serializing_if = "Option::is_none")]
31 pub filter_logic: Option<Box<crate::models::CustomFieldFilterLogic>>,
32 #[serde(rename = "label")]
33 pub label: String,
34 #[serde(rename = "grouping", skip_serializing_if = "Option::is_none")]
36 pub grouping: Option<String>,
37 #[serde(rename = "key", skip_serializing_if = "Option::is_none")]
39 pub key: Option<String>,
40 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
42 pub description: Option<String>,
43 #[serde(rename = "required", skip_serializing_if = "Option::is_none")]
45 pub required: Option<bool>,
46 #[serde(
48 rename = "default",
49 default,
50 with = "::serde_with::rust::double_option",
51 skip_serializing_if = "Option::is_none"
52 )]
53 pub default: Option<Option<serde_json::Value>>,
54 #[serde(rename = "weight", skip_serializing_if = "Option::is_none")]
56 pub weight: Option<i32>,
57 #[serde(
59 rename = "validation_minimum",
60 default,
61 with = "::serde_with::rust::double_option",
62 skip_serializing_if = "Option::is_none"
63 )]
64 pub validation_minimum: Option<Option<i64>>,
65 #[serde(
67 rename = "validation_maximum",
68 default,
69 with = "::serde_with::rust::double_option",
70 skip_serializing_if = "Option::is_none"
71 )]
72 pub validation_maximum: Option<Option<i64>>,
73 #[serde(rename = "validation_regex", skip_serializing_if = "Option::is_none")]
75 pub validation_regex: Option<String>,
76 #[serde(rename = "advanced_ui", skip_serializing_if = "Option::is_none")]
78 pub advanced_ui: Option<bool>,
79 #[serde(
81 rename = "scope_filter",
82 default,
83 with = "::serde_with::rust::double_option",
84 skip_serializing_if = "Option::is_none"
85 )]
86 pub scope_filter: Option<Option<serde_json::Value>>,
87 #[serde(
88 rename = "created",
89 default,
90 with = "::serde_with::rust::double_option",
91 skip_serializing_if = "Option::is_none"
92 )]
93 pub created: Option<Option<String>>,
94 #[serde(
95 rename = "last_updated",
96 default,
97 with = "::serde_with::rust::double_option",
98 skip_serializing_if = "Option::is_none"
99 )]
100 pub last_updated: Option<Option<String>>,
101 #[serde(rename = "notes_url", skip_serializing_if = "Option::is_none")]
102 pub notes_url: Option<String>,
103}
104
105impl CustomField {
106 pub fn new(
108 content_types: Vec<String>,
109 r#type: crate::models::CustomFieldType,
110 label: String,
111 ) -> CustomField {
112 CustomField {
113 id: None,
114 object_type: None,
115 display: None,
116 url: None,
117 natural_slug: None,
118 content_types,
119 r#type: Box::new(r#type),
120 filter_logic: None,
121 label,
122 grouping: None,
123 key: None,
124 description: None,
125 required: None,
126 default: None,
127 weight: None,
128 validation_minimum: None,
129 validation_maximum: None,
130 validation_regex: None,
131 advanced_ui: None,
132 scope_filter: None,
133 created: None,
134 last_updated: None,
135 notes_url: None,
136 }
137 }
138}