use crate::models;
use serde::{Deserialize, Serialize};
#[serde_with::serde_as]
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GroupAuditLogEntryDataGroupCreate {
#[serde(rename = "bannerId", deserialize_with = "Option::deserialize")]
pub banner_id: Option<String>,
#[serde(rename = "bannerVersion", skip_serializing_if = "Option::is_none")]
pub banner_version: Option<i32>,
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "discoverability")]
pub discoverability: models::GroupAuditLogEntryDataGroupCreateDiscoverability,
#[serde(rename = "galleries", skip_serializing_if = "Option::is_none")]
pub galleries: Option<Vec<models::GroupAuditLogEntryDataGroupCreateGallery>>,
#[serde(rename = "iconId", deserialize_with = "Option::deserialize")]
pub icon_id: Option<String>,
#[serde(rename = "iconVersion", skip_serializing_if = "Option::is_none")]
pub icon_version: Option<i32>,
#[serde(rename = "joinState")]
pub join_state: models::GroupJoinState,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "ownerId")]
pub owner_id: String,
#[serde(rename = "privacy")]
pub privacy: models::GroupPrivacy,
#[serde(rename = "rules")]
pub rules: String,
#[serde(rename = "shortCode")]
pub short_code: String,
}
impl GroupAuditLogEntryDataGroupCreate {
pub fn new(
banner_id: Option<String>,
description: String,
discoverability: models::GroupAuditLogEntryDataGroupCreateDiscoverability,
icon_id: Option<String>,
join_state: models::GroupJoinState,
name: String,
owner_id: String,
privacy: models::GroupPrivacy,
rules: String,
short_code: String,
) -> GroupAuditLogEntryDataGroupCreate {
GroupAuditLogEntryDataGroupCreate {
banner_id,
banner_version: None,
description,
discoverability,
galleries: None,
icon_id,
icon_version: None,
join_state,
name,
owner_id,
privacy,
rules,
short_code,
}
}
}