#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct CustomField {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<uuid::Uuid>,
#[serde(rename = "object_type", skip_serializing_if = "Option::is_none")]
pub object_type: Option<String>,
#[serde(rename = "display", skip_serializing_if = "Option::is_none")]
pub display: Option<String>,
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(rename = "natural_slug", skip_serializing_if = "Option::is_none")]
pub natural_slug: Option<String>,
#[serde(rename = "content_types")]
pub content_types: Vec<String>,
#[serde(rename = "type")]
pub r#type: Box<crate::models::CustomFieldType>,
#[serde(rename = "filter_logic", skip_serializing_if = "Option::is_none")]
pub filter_logic: Option<Box<crate::models::CustomFieldFilterLogic>>,
#[serde(rename = "label")]
pub label: String,
#[serde(rename = "grouping", skip_serializing_if = "Option::is_none")]
pub grouping: Option<String>,
#[serde(rename = "key", skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "required", skip_serializing_if = "Option::is_none")]
pub required: Option<bool>,
#[serde(
rename = "default",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub default: Option<Option<serde_json::Value>>,
#[serde(rename = "weight", skip_serializing_if = "Option::is_none")]
pub weight: Option<i32>,
#[serde(
rename = "validation_minimum",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub validation_minimum: Option<Option<i64>>,
#[serde(
rename = "validation_maximum",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub validation_maximum: Option<Option<i64>>,
#[serde(rename = "validation_regex", skip_serializing_if = "Option::is_none")]
pub validation_regex: Option<String>,
#[serde(rename = "advanced_ui", skip_serializing_if = "Option::is_none")]
pub advanced_ui: Option<bool>,
#[serde(
rename = "scope_filter",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub scope_filter: Option<Option<serde_json::Value>>,
#[serde(
rename = "created",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub created: Option<Option<String>>,
#[serde(
rename = "last_updated",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub last_updated: Option<Option<String>>,
#[serde(rename = "notes_url", skip_serializing_if = "Option::is_none")]
pub notes_url: Option<String>,
}
impl CustomField {
pub fn new(
content_types: Vec<String>,
r#type: crate::models::CustomFieldType,
label: String,
) -> CustomField {
CustomField {
id: None,
object_type: None,
display: None,
url: None,
natural_slug: None,
content_types,
r#type: Box::new(r#type),
filter_logic: None,
label,
grouping: None,
key: None,
description: None,
required: None,
default: None,
weight: None,
validation_minimum: None,
validation_maximum: None,
validation_regex: None,
advanced_ui: None,
scope_filter: None,
created: None,
last_updated: None,
notes_url: None,
}
}
}