pub mod query;
use crate::{
InternalError,
dto::state::{FleetCommand, FleetCommandResponse},
ops::{runtime::env::EnvOps, storage::state::fleet::FleetStateOps},
workflow::cascade::{snapshot::StateSnapshotBuilder, state::StateCascadeWorkflow},
};
pub struct FleetStateWorkflow;
impl FleetStateWorkflow {
pub async fn execute_command(cmd: FleetCommand) -> Result<FleetCommandResponse, InternalError> {
EnvOps::require_root()?;
let response = FleetStateOps::apply_command(cmd);
let snapshot = StateSnapshotBuilder::new()?.with_fleet_state().build();
StateCascadeWorkflow::root_cascade_state(&snapshot).await?;
Ok(response)
}
}