use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use super::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PackageGroup {
pub id: String,
pub name: String,
pub packages: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub repositories: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_user_visible: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_default: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub group_type: Option<PackageGroupGroupType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_order: Option<i64>,
}
pub struct PackageGroupRequired {
pub id: String,
pub name: String,
pub packages: Vec<String>,
}
impl PackageGroup {
pub fn new(required: PackageGroupRequired) -> Self {
Self {
id: required.id,
name: required.name,
packages: required.packages,
repositories: None,
description: None,
is_user_visible: None,
is_default: None,
group_type: None,
display_order: None,
}
}
pub fn set_id(mut self, value: String) -> Self {
self.id = value;
self
}
pub fn set_name(mut self, value: String) -> Self {
self.name = value;
self
}
pub fn set_repositories(mut self, value: Option<Vec<String>>) -> Self {
self.repositories = value;
self
}
pub fn set_description(mut self, value: Option<String>) -> Self {
self.description = value;
self
}
pub fn set_is_user_visible(mut self, value: Option<bool>) -> Self {
self.is_user_visible = value;
self
}
pub fn set_is_default(mut self, value: Option<bool>) -> Self {
self.is_default = value;
self
}
pub fn set_group_type(mut self, value: Option<PackageGroupGroupType>) -> Self {
self.group_type = value;
self
}
pub fn set_display_order(mut self, value: Option<i64>) -> Self {
self.display_order = value;
self
}
pub fn set_packages(mut self, value: Vec<String>) -> Self {
self.packages = value;
self
}
pub fn with_repositories(mut self, value: Vec<String>) -> Self {
self.repositories = Some(value);
self
}
pub fn with_description(mut self, value: impl Into<String>) -> Self {
self.description = Some(value.into());
self
}
pub fn with_is_user_visible(mut self, value: bool) -> Self {
self.is_user_visible = Some(value);
self
}
pub fn with_is_default(mut self, value: bool) -> Self {
self.is_default = Some(value);
self
}
pub fn with_group_type(mut self, value: PackageGroupGroupType) -> Self {
self.group_type = Some(value);
self
}
pub fn with_display_order(mut self, value: i64) -> Self {
self.display_order = Some(value);
self
}
}