use crate::part_1::v3_1::core::SpecificAssetId;
use crate::part_1::v3_1::primitives::Identifier;
use crate::part_1::v3_1::submodel_elements::SubmodelElement;
use serde::{Deserialize, Serialize};
use strum::{Display, EnumString};
#[derive(Clone, PartialEq, Debug, Deserialize, Serialize, Display, EnumString)]
pub enum Entity {
CoManagedEntity(EntityInner),
SelfManagedEntity(EntityInner),
}
#[derive(Clone, PartialEq, Debug, Deserialize, Serialize, Default)]
pub struct EntityInner {
pub statement: Option<Vec<SubmodelElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "globalAssetId")]
pub global_asset_id: Option<Identifier>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "specificAssetId")]
pub specific_asset_id: Option<Vec<SpecificAssetId>>,
}