use indexmap::IndexMap;
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum ReturnFormat {
#[default]
Nested,
Flat,
Array,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DependentItem {
pub ref_path: String,
pub clear: Option<Value>, pub value: Option<Value>, }
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ValidationError {
#[serde(rename = "type")]
pub rule_type: String,
pub message: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pattern: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "fieldValue")]
pub field_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ValidationResult {
pub has_error: bool,
pub errors: IndexMap<String, ValidationError>,
}