namespace ScadaLink.AuditLog.Site.Telemetry;
///
/// Tuning knobs for the site-side drain
/// loop. Defaults mirror Bundle D's plan: drain every 5 s while rows are
/// flowing (busy), every 30 s when the queue is empty (idle).
///
public sealed class SiteAuditTelemetryOptions
{
///
/// Maximum number of
/// rows read from the site SQLite queue and pushed in a single gRPC batch.
///
public int BatchSize { get; set; } = 256;
///
/// Delay between drains when the previous drain found at least one Pending
/// row OR the previous push faulted. Re-drain quickly to keep telemetry
/// flowing and to retry transient gRPC errors.
///
public int BusyIntervalSeconds { get; set; } = 5;
///
/// Delay between drains when the previous drain found no Pending rows.
/// Longer interval avoids hammering an idle SQLite + gRPC channel.
///
public int IdleIntervalSeconds { get; set; } = 30;
}