use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AvailableWorkflowSystemRule {
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "incompatibleRuleKeys")]
pub incompatible_rule_keys: Vec<String>,
#[serde(rename = "isAvailableForInitialTransition")]
pub is_available_for_initial_transition: bool,
#[serde(rename = "isVisible")]
pub is_visible: bool,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "ruleKey")]
pub rule_key: String,
#[serde(rename = "ruleType")]
pub rule_type: RuleType,
}
impl AvailableWorkflowSystemRule {
pub fn new(description: String, incompatible_rule_keys: Vec<String>, is_available_for_initial_transition: bool, is_visible: bool, name: String, rule_key: String, rule_type: RuleType) -> AvailableWorkflowSystemRule {
AvailableWorkflowSystemRule {
description,
incompatible_rule_keys,
is_available_for_initial_transition,
is_visible,
name,
rule_key,
rule_type,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RuleType {
#[serde(rename = "Condition")]
Condition,
#[serde(rename = "Validator")]
Validator,
#[serde(rename = "Function")]
Function,
#[serde(rename = "Screen")]
Screen,
}
impl Default for RuleType {
fn default() -> RuleType {
Self::Condition
}
}