use crate::errors::OrionError;
pub use orion_api::enums::{
CHANNEL_TYPE_ASYNC, CHANNEL_TYPE_SYNC, ChannelProtocol, ChannelType, EntityStatus,
PackageState, STATUS_ACTIVE, STATUS_ARCHIVED, STATUS_DRAFT, TRACE_MODE_ASYNC, TRACE_MODE_SYNC,
TRACE_STATUS_COMPLETED, TRACE_STATUS_FAILED, TRACE_STATUS_PENDING, TRACE_STATUS_RUNNING,
VALID_CHANNEL_TYPES,
};
pub(super) fn parse_json_field<T: serde::de::DeserializeOwned>(
json_str: &str,
entity_type: &str,
entity_id: &str,
field_name: &str,
) -> Result<T, OrionError> {
serde_json::from_str(json_str).map_err(|e| OrionError::Internal {
context: format!("Corrupt JSON in {entity_type} {entity_id} {field_name}"),
source: Some(Box::new(e)),
})
}