use super::EmbeddedDataSpecification;
use crate::LangString as LangStringTextType;
use crate::{qualifier::Qualifier, reference::Reference, Extension};
use crate::{DataTypeDefXsd, LangString as LangStringNameType};
use serde::{Deserialize, Serialize};
#[derive(Clone, PartialEq, Debug, Deserialize, Serialize)]
pub struct Range {
#[serde(skip_serializing_if = "Option::is_none")]
pub extensions: Option<Vec<Extension>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "idShort")]
pub id_short: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "displayName")]
pub display_name: Option<Vec<LangStringNameType>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<Vec<LangStringTextType>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "semanticId")]
pub semantic_id: Option<Reference>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "supplementalSemanticIds")]
pub supplemental_semantic_ids: Option<Vec<Reference>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub qualifiers: Option<Vec<Qualifier>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "embeddedDataSpecifications")]
pub embedded_data_specifications: Option<Vec<EmbeddedDataSpecification>>,
#[cfg(feature = "explorer")]
#[serde(skip_serializing_if = "Option::is_none")]
pub min: Option<String>,
#[cfg(feature = "explorer")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max: Option<String>,
pub value_type: DataTypeDefXsd,
}