use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ProjectFeature {
#[serde(rename = "projectId", skip_serializing_if = "Option::is_none")]
pub project_id: Option<i64>,
#[serde(rename = "state", skip_serializing_if = "Option::is_none")]
pub state: Option<State>,
#[serde(rename = "toggleLocked", skip_serializing_if = "Option::is_none")]
pub toggle_locked: Option<bool>,
#[serde(rename = "feature", skip_serializing_if = "Option::is_none")]
pub feature: Option<String>,
#[serde(rename = "featureCategory", skip_serializing_if = "Option::is_none")]
pub feature_category: Option<String>,
#[serde(rename = "prerequisites", skip_serializing_if = "Option::is_none")]
pub prerequisites: Option<Vec<String>>,
#[serde(rename = "localisedName", skip_serializing_if = "Option::is_none")]
pub localised_name: Option<String>,
#[serde(rename = "localisedDescription", skip_serializing_if = "Option::is_none")]
pub localised_description: Option<String>,
#[serde(rename = "imageUri", skip_serializing_if = "Option::is_none")]
pub image_uri: Option<String>,
}
impl ProjectFeature {
pub fn new() -> ProjectFeature {
ProjectFeature {
project_id: None,
state: None,
toggle_locked: None,
feature: None,
feature_category: None,
prerequisites: None,
localised_name: None,
localised_description: None,
image_uri: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum State {
#[serde(rename = "ENABLED")]
Enabled,
#[serde(rename = "DISABLED")]
Disabled,
#[serde(rename = "COMING_SOON")]
ComingSoon,
}
impl Default for State {
fn default() -> State {
Self::Enabled
}
}