use cobre_solver::StageTemplate;
use cobre_stochastic::StochasticContext;
use crate::{HorizonMode, InflowNonNegativityMethod, StageIndexer};
pub struct StageContext<'a> {
pub templates: &'a [StageTemplate],
pub base_rows: &'a [usize],
pub noise_scale: &'a [f64],
pub n_hydros: usize,
pub n_load_buses: usize,
pub load_balance_row_starts: &'a [usize],
pub load_bus_indices: &'a [usize],
pub block_counts_per_stage: &'a [usize],
}
pub struct TrainingContext<'a> {
pub horizon: &'a HorizonMode,
pub indexer: &'a StageIndexer,
pub inflow_method: &'a InflowNonNegativityMethod,
pub stochastic: &'a StochasticContext,
pub initial_state: &'a [f64],
}