use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SettingsRequest {
#[serde(rename = "avatars", skip_serializing_if = "Option::is_none")]
pub avatars: Option<String>,
#[serde(rename = "default_user_change_name", skip_serializing_if = "Option::is_none")]
pub default_user_change_name: Option<bool>,
#[serde(rename = "default_user_change_email", skip_serializing_if = "Option::is_none")]
pub default_user_change_email: Option<bool>,
#[serde(rename = "default_user_change_username", skip_serializing_if = "Option::is_none")]
pub default_user_change_username: Option<bool>,
#[serde(rename = "event_retention", skip_serializing_if = "Option::is_none")]
pub event_retention: Option<String>,
#[serde(rename = "reputation_lower_limit", skip_serializing_if = "Option::is_none")]
pub reputation_lower_limit: Option<i32>,
#[serde(rename = "reputation_upper_limit", skip_serializing_if = "Option::is_none")]
pub reputation_upper_limit: Option<u32>,
#[serde(
rename = "footer_links",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub footer_links: Option<Option<serde_json::Value>>,
#[serde(rename = "gdpr_compliance", skip_serializing_if = "Option::is_none")]
pub gdpr_compliance: Option<bool>,
#[serde(rename = "impersonation", skip_serializing_if = "Option::is_none")]
pub impersonation: Option<bool>,
#[serde(rename = "impersonation_require_reason", skip_serializing_if = "Option::is_none")]
pub impersonation_require_reason: Option<bool>,
#[serde(rename = "default_token_duration", skip_serializing_if = "Option::is_none")]
pub default_token_duration: Option<String>,
#[serde(rename = "default_token_length", skip_serializing_if = "Option::is_none")]
pub default_token_length: Option<u32>,
#[serde(rename = "pagination_default_page_size", skip_serializing_if = "Option::is_none")]
pub pagination_default_page_size: Option<u32>,
#[serde(rename = "pagination_max_page_size", skip_serializing_if = "Option::is_none")]
pub pagination_max_page_size: Option<u32>,
#[serde(rename = "flags")]
pub flags: models::PatchedSettingsRequestFlags,
}
impl SettingsRequest {
pub fn new(flags: models::PatchedSettingsRequestFlags) -> SettingsRequest {
SettingsRequest {
avatars: None,
default_user_change_name: None,
default_user_change_email: None,
default_user_change_username: None,
event_retention: None,
reputation_lower_limit: None,
reputation_upper_limit: None,
footer_links: None,
gdpr_compliance: None,
impersonation: None,
impersonation_require_reason: None,
default_token_duration: None,
default_token_length: None,
pagination_default_page_size: None,
pagination_max_page_size: None,
flags,
}
}
}