// Code generated by oagen. DO NOT EDIT.

#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};
/// Evaluation result for a sub-condition in a compound condition.
/// Used when multiple conditions are combined with AND/OR operators.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ConditionEvaluationSubCondition {
    /// Identifier for this sub-condition
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub sub_condition_id: Option<String>,
    /// JSON path that was evaluated
    ///
    /// Defaults to ``.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub path: Option<String>,
    /// Comparison operator used
    ///
    /// Defaults to ``.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub operator: Option<String>,
    /// Expected value
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub expected: Option<serde_json::Value>,
    /// Actual value found
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub actual: Option<serde_json::Value>,
    /// Whether this sub-condition matched
    ///
    /// Defaults to `false`.
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub matched: Option<bool>,
    /// Per-item breakdown if this sub-condition used a wildcard path
    #[serde(skip_serializing_if = "Option::is_none", default)]
    pub items: Option<Vec<ConditionEvaluationPerItem>>,
}
