use crate::models;
use serde::{Deserialize, Serialize};
#[serde_with::serde_as]
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GroupAuditLogEntryDataGroupRoleCreate {
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "isAddedOnJoin")]
pub is_added_on_join: bool,
#[serde(rename = "isSelfAssignable")]
pub is_self_assignable: bool,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "order", skip_serializing_if = "Option::is_none")]
pub order: Option<i32>,
#[serde(rename = "permissions")]
pub permissions: Vec<models::GroupPermissions>,
#[serde(rename = "requiresPurchase")]
pub requires_purchase: bool,
#[serde(rename = "requiresTwoFactor")]
pub requires_two_factor: bool,
#[serde(rename = "groupId")]
pub group_id: String,
#[serde(rename = "lastUpdatedByUserId")]
pub last_updated_by_user_id: String,
}
impl GroupAuditLogEntryDataGroupRoleCreate {
pub fn new(
description: String,
is_added_on_join: bool,
is_self_assignable: bool,
name: String,
permissions: Vec<models::GroupPermissions>,
requires_purchase: bool,
requires_two_factor: bool,
group_id: String,
last_updated_by_user_id: String,
) -> GroupAuditLogEntryDataGroupRoleCreate {
GroupAuditLogEntryDataGroupRoleCreate {
description,
is_added_on_join,
is_self_assignable,
name,
order: None,
permissions,
requires_purchase,
requires_two_factor,
group_id,
last_updated_by_user_id,
}
}
}