use async_trait::async_trait; use domain::{ errors::DomainError, ports::PluginExecutor, value_objects::{StructuredData, SystemId}, }; use tracing::info; pub struct NoOpPlugin; #[async_trait] impl PluginExecutor for NoOpPlugin { fn plugin_name(&self) -> &str { "no_op" } async fn execute( &self, asset_id: Option, _payload: &StructuredData, _config: &StructuredData, ) -> Result { info!(asset_id = ?asset_id, "no_op plugin executed"); Ok(StructuredData::new()) } }