use bacnet_types::enums::PropertyIdentifier as P;
use crate::property_metadata::{
PropertyConformance::{Optional, RequiredRead, RequiredWrite},
PropertyMetadata,
PropertyWriteCapability::{Always, ReadOnly, WhenOutOfService},
};
pub(super) const CHANNEL_PROPERTY_METADATA: &[PropertyMetadata] = &[
PropertyMetadata::new(P::OBJECT_IDENTIFIER, RequiredRead, None, ReadOnly),
PropertyMetadata::new(P::OBJECT_NAME, RequiredRead, None, Always),
PropertyMetadata::new(P::OBJECT_TYPE, RequiredRead, None, ReadOnly),
PropertyMetadata::new(P::DESCRIPTION, Optional, None, Always),
PropertyMetadata::new(P::PRESENT_VALUE, RequiredWrite, None, Always),
PropertyMetadata::new(P::LAST_PRIORITY, RequiredRead, None, ReadOnly),
PropertyMetadata::new(P::WRITE_STATUS, RequiredRead, None, ReadOnly),
PropertyMetadata::new(P::STATUS_FLAGS, RequiredRead, None, ReadOnly),
PropertyMetadata::new(P::RELIABILITY, Optional, None, WhenOutOfService),
PropertyMetadata::new(P::OUT_OF_SERVICE, RequiredRead, None, Always),
PropertyMetadata::new(
P::LIST_OF_OBJECT_PROPERTY_REFERENCES,
RequiredWrite,
None,
Always,
),
PropertyMetadata::new(P::EXECUTION_DELAY, Optional, None, Always),
PropertyMetadata::new(P::ALLOW_GROUP_DELAY_INHIBIT, Optional, None, Always),
PropertyMetadata::new(P::CHANNEL_NUMBER, RequiredWrite, None, Always),
PropertyMetadata::new(P::CONTROL_GROUPS, RequiredWrite, None, Always),
PropertyMetadata::new(P::PROPERTY_LIST, RequiredRead, None, ReadOnly),
];