use crate::v1_2::common::archetyped::archetyped::Archetyped;
use crate::v1_2::common::archetyped::feeder_audit::FeederAudit;
use crate::v1_2::common::archetyped::link::Link;
use crate::v1_2::common::archetyped::locatable::Locatable;
use crate::v1_2::data_types::text::dv_coded_text::DvCodedText;
use crate::v1_2::data_types::text::dv_text::DvText;
use crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTime;
use openehr_base::v1_3::base_types::identification::uid_based_id::UidBasedId;
#[doc(alias = "GENERIC_CONTENT_ITEM")]
#[derive(Debug, Clone, PartialEq)]
pub struct GenericContentItem {
pub name: DvText,
pub archetype_node_id: String,
pub uid: Option<UidBasedId>,
pub links: Option<openehr_base::containers::NonEmptyVec<Link>>,
pub archetype_details: Option<Archetyped>,
pub feeder_audit: Option<FeederAudit>,
pub is_primary: bool,
pub is_changed: Option<bool>,
pub is_masked: Option<bool>,
pub item: Option<Box<Locatable>>,
pub item_type: Option<DvCodedText>,
pub item_type_version: Option<String>,
pub author: Option<String>,
pub creation_time: Option<Iso8601DateTime>,
pub authoriser: Option<String>,
pub authorisation_time: Option<Iso8601DateTime>,
pub item_status: Option<DvCodedText>,
pub version_id: Option<String>,
pub version_set_id: Option<String>,
pub system_id: Option<String>,
pub other_details: Option<std::collections::BTreeMap<String, String>>,
}