use ahash::AHashMap;
use nautilus_common::throttler::RateLimit;
use nautilus_core::datetime::NANOSECONDS_IN_SECOND;
use nautilus_model::identifiers::InstrumentId;
use rust_decimal::Decimal;
#[derive(Debug, Clone, bon::Builder)]
pub struct RiskEngineConfig {
#[builder(default)]
pub bypass: bool,
#[builder(default = RateLimit::new(100, NANOSECONDS_IN_SECOND))]
pub max_order_submit: RateLimit,
#[builder(default = RateLimit::new(100, NANOSECONDS_IN_SECOND))]
pub max_order_modify: RateLimit,
#[builder(default)]
pub max_notional_per_order: AHashMap<InstrumentId, Decimal>,
#[builder(default)]
pub debug: bool,
}
impl Default for RiskEngineConfig {
fn default() -> Self {
Self::builder().build()
}
}