namespace ZB.MOM.WW.ScadaBridge.StoreAndForward;
///
/// WP-9/10: Configuration options for the Store-and-Forward Engine.
///
public class StoreAndForwardOptions
{
/// Path to the SQLite database for S&F message persistence.
public string SqliteDbPath { get; set; } = "./data/store-and-forward.db";
/// WP-11: Whether to replicate buffer operations to standby node.
public bool ReplicationEnabled { get; set; } = true;
/// WP-10: Default retry interval for messages without per-source settings.
public TimeSpan DefaultRetryInterval { get; set; } = TimeSpan.FromSeconds(30);
///
/// WP-10: Default maximum retry count before parking. Applied when an
/// EnqueueAsync caller does not pass an explicit maxRetries.
///
/// StoreAndForward-019: this default is enforced uniformly across
/// every category, including :
/// once the buffered message's retry count reaches this cap the engine
/// parks the row. The Component-StoreAndForward.md "notifications do not
/// park" wording reflects the operational intent when central is
/// reachable on the normal cadence; under a sustained central outage that
/// exceeds DefaultMaxRetries × forward-interval a buffered
/// notification will park and surface in the parked-message UI,
/// matching the rest of the system's bounded-retry-then-park behaviour.
/// Callers that genuinely require unbounded retry must pass
/// maxRetries: 0 on EnqueueAsync (the documented "no limit"
/// escape hatch — see StoreAndForwardService.EnqueueAsync).
///
///
public int DefaultMaxRetries { get; set; } = 50;
/// WP-10: Interval for the background retry timer sweep.
public TimeSpan RetryTimerInterval { get; set; } = TimeSpan.FromSeconds(10);
}