/*
* Pipedrive API v1
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.0.0
*
* Generated by: https://openapi-generator.tech
*/
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct FieldsResponse200AllOfDataInner {
/// The ID of the field. Value is `null` in case of subfields.
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i32>,
/// The key of the field. For custom fields this is generated upon creation.
#[serde(rename = "key", skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
/// The name of the field
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// The order number of the field
#[serde(rename = "order_nr", skip_serializing_if = "Option::is_none")]
pub order_nr: Option<i32>,
/// The type of the field<table><tr><th>Value</th><th>Description</th></tr><tr><td>`address`</td><td>Address field (has multiple subfields, autocompleted by Google Maps)</td></tr><tr><td>`date`</td><td>Date (format YYYY-MM-DD)</td></tr><tr><td>`daterange`</td><td>Date-range field (has a start date and end date value, both YYYY-MM-DD)</td></tr><tr><td>`double`</td><td>Numeric value</td></tr><tr><td>`enum`</td><td>Options field with a single possible chosen option</td></tr><tr></tr><tr><td>`monetary`</td><td>Monetary field (has a numeric value and a currency value)</td></tr><tr><td>`org`</td><td>Organization field (contains an organization ID which is stored on the same account)</td></tr><tr><td>`people`</td><td>Person field (contains a person ID which is stored on the same account)</td></tr><tr><td>`phone`</td><td>Phone field (up to 255 numbers and/or characters)</td></tr><tr><td>`set`</td><td>Options field with a possibility of having multiple chosen options</td></tr><tr><td>`text`</td><td>Long text (up to 65k characters)</td></tr><tr><td>`time`</td><td>Time field (format HH:MM:SS)</td></tr><tr><td>`timerange`</td><td>Time-range field (has a start time and end time value, both HH:MM:SS)</td></tr><tr><td>`user`</td><td>User field (contains a user ID of another Pipedrive user)</td></tr><tr><td>`varchar`</td><td>Text (up to 255 characters)</td></tr><tr><td>`varchar_auto`</td><td>Autocomplete text (up to 255 characters)</td></tr><tr><td>`visible_to`</td><td>System field that keeps item's visibility setting</td></tr></table>
#[serde(rename = "field_type", skip_serializing_if = "Option::is_none")]
pub field_type: Option<FieldType>,
/// The creation time of the field
#[serde(rename = "add_time", skip_serializing_if = "Option::is_none")]
pub add_time: Option<String>,
/// The update time of the field
#[serde(rename = "update_time", skip_serializing_if = "Option::is_none")]
pub update_time: Option<String>,
/// The ID of the user who created or most recently updated the field, only applicable for custom fields
#[serde(rename = "last_updated_by_user_id", skip_serializing_if = "Option::is_none")]
pub last_updated_by_user_id: Option<i32>,
/// The active flag of the field
#[serde(rename = "active_flag", skip_serializing_if = "Option::is_none")]
pub active_flag: Option<bool>,
/// The edit flag of the field
#[serde(rename = "edit_flag", skip_serializing_if = "Option::is_none")]
pub edit_flag: Option<bool>,
/// Not used
#[serde(rename = "index_visible_flag", skip_serializing_if = "Option::is_none")]
pub index_visible_flag: Option<bool>,
/// Not used
#[serde(rename = "details_visible_flag", skip_serializing_if = "Option::is_none")]
pub details_visible_flag: Option<bool>,
/// Not used
#[serde(rename = "add_visible_flag", skip_serializing_if = "Option::is_none")]
pub add_visible_flag: Option<bool>,
/// Not used
#[serde(rename = "important_flag", skip_serializing_if = "Option::is_none")]
pub important_flag: Option<bool>,
/// Whether or not the field of an item can be edited in bulk
#[serde(rename = "bulk_edit_allowed", skip_serializing_if = "Option::is_none")]
pub bulk_edit_allowed: Option<bool>,
/// Whether or not items can be searched by this field
#[serde(rename = "searchable_flag", skip_serializing_if = "Option::is_none")]
pub searchable_flag: Option<bool>,
/// Whether or not items can be filtered by this field
#[serde(rename = "filtering_allowed", skip_serializing_if = "Option::is_none")]
pub filtering_allowed: Option<bool>,
/// Whether or not items can be sorted by this field
#[serde(rename = "sortable_flag", skip_serializing_if = "Option::is_none")]
pub sortable_flag: Option<bool>,
/// Whether or not the field is mandatory
#[serde(rename = "mandatory_flag", skip_serializing_if = "Option::is_none")]
pub mandatory_flag: Option<bool>,
/// The options of the field. When there are no options, `null` is returned.
#[serde(rename = "options", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub options: Option<Option<Vec<serde_json::Value>>>,
/// The deleted options of the field. Only present when there is at least 1 deleted option.
#[serde(rename = "options_deleted", skip_serializing_if = "Option::is_none")]
pub options_deleted: Option<Vec<serde_json::Value>>,
/// Whether or not the field is a subfield of another field. Only present if field is subfield.
#[serde(rename = "is_subfield", skip_serializing_if = "Option::is_none")]
pub is_subfield: Option<bool>,
/// The subfields of the field. Only present when the field has subfields.
#[serde(rename = "subfields", skip_serializing_if = "Option::is_none")]
pub subfields: Option<Vec<serde_json::Value>>,
}
impl FieldsResponse200AllOfDataInner {
pub fn new() -> FieldsResponse200AllOfDataInner {
FieldsResponse200AllOfDataInner {
id: None,
key: None,
name: None,
order_nr: None,
field_type: None,
add_time: None,
update_time: None,
last_updated_by_user_id: None,
active_flag: None,
edit_flag: None,
index_visible_flag: None,
details_visible_flag: None,
add_visible_flag: None,
important_flag: None,
bulk_edit_allowed: None,
searchable_flag: None,
filtering_allowed: None,
sortable_flag: None,
mandatory_flag: None,
options: None,
options_deleted: None,
is_subfield: None,
subfields: None,
}
}
}
/// The type of the field<table><tr><th>Value</th><th>Description</th></tr><tr><td>`address`</td><td>Address field (has multiple subfields, autocompleted by Google Maps)</td></tr><tr><td>`date`</td><td>Date (format YYYY-MM-DD)</td></tr><tr><td>`daterange`</td><td>Date-range field (has a start date and end date value, both YYYY-MM-DD)</td></tr><tr><td>`double`</td><td>Numeric value</td></tr><tr><td>`enum`</td><td>Options field with a single possible chosen option</td></tr><tr></tr><tr><td>`monetary`</td><td>Monetary field (has a numeric value and a currency value)</td></tr><tr><td>`org`</td><td>Organization field (contains an organization ID which is stored on the same account)</td></tr><tr><td>`people`</td><td>Person field (contains a person ID which is stored on the same account)</td></tr><tr><td>`phone`</td><td>Phone field (up to 255 numbers and/or characters)</td></tr><tr><td>`set`</td><td>Options field with a possibility of having multiple chosen options</td></tr><tr><td>`text`</td><td>Long text (up to 65k characters)</td></tr><tr><td>`time`</td><td>Time field (format HH:MM:SS)</td></tr><tr><td>`timerange`</td><td>Time-range field (has a start time and end time value, both HH:MM:SS)</td></tr><tr><td>`user`</td><td>User field (contains a user ID of another Pipedrive user)</td></tr><tr><td>`varchar`</td><td>Text (up to 255 characters)</td></tr><tr><td>`varchar_auto`</td><td>Autocomplete text (up to 255 characters)</td></tr><tr><td>`visible_to`</td><td>System field that keeps item's visibility setting</td></tr></table>
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum FieldType {
#[serde(rename = "address")]
Address,
#[serde(rename = "date")]
Date,
#[serde(rename = "daterange")]
Daterange,
#[serde(rename = "double")]
Double,
#[serde(rename = "enum")]
Enum,
#[serde(rename = "monetary")]
Monetary,
#[serde(rename = "org")]
Org,
#[serde(rename = "people")]
People,
#[serde(rename = "phone")]
Phone,
#[serde(rename = "set")]
Set,
#[serde(rename = "text")]
Text,
#[serde(rename = "time")]
Time,
#[serde(rename = "timerange")]
Timerange,
#[serde(rename = "user")]
User,
#[serde(rename = "varchar")]
Varchar,
#[serde(rename = "varchar_auto")]
VarcharAuto,
#[serde(rename = "visible_to")]
VisibleTo,
}
impl Default for FieldType {
fn default() -> FieldType {
Self::Address
}
}