#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct JourneyEventAttribute {
#[serde(rename = "key")]
pub key: String,
#[serde(rename = "operator")]
pub operator: OperatorType,
#[serde(rename = "value", skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
impl JourneyEventAttribute {
pub fn new(key: String, operator: OperatorType) -> JourneyEventAttribute {
JourneyEventAttribute {
key,
operator,
value: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum OperatorType {
#[serde(rename = "equal")]
Equal,
#[serde(rename = "not_equal")]
NotEqual,
#[serde(rename = "less")]
Less,
#[serde(rename = "less_or_equal")]
LessOrEqual,
#[serde(rename = "greater_or_equal")]
GreaterOrEqual,
#[serde(rename = "greater")]
Greater,
#[serde(rename = "is")]
Is,
#[serde(rename = "is_not")]
IsNot,
#[serde(rename = "exists")]
Exists,
#[serde(rename = "not_exists")]
NotExists,
#[serde(rename = "before")]
Before,
#[serde(rename = "after")]
After,
}
impl Default for OperatorType {
fn default() -> OperatorType {
Self::Equal
}
}