use crate::models;
use serde::{Deserialize, Serialize};
#[serde_with::serde_as]
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GroupAuditLogEntryDataGroupRole {
#[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,
}
impl GroupAuditLogEntryDataGroupRole {
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,
) -> GroupAuditLogEntryDataGroupRole {
GroupAuditLogEntryDataGroupRole {
description,
is_added_on_join,
is_self_assignable,
name,
order: None,
permissions,
requires_purchase,
requires_two_factor,
}
}
}