namespace Extrudex.Infrastructure.Configuration; /// /// Configuration options for the MoonrakerPrinterSync background service. /// Bound from appsettings.json under the "MoonrakerPrinterSync" section. /// Controls polling interval, timeouts, and feature toggles for the /// printer status and print job mapping service. /// public class MoonrakerPrinterSyncOptions { /// /// The section name in appsettings.json where these options are bound. /// public const string SectionName = "MoonrakerPrinterSync"; /// /// How often the background service polls Moonraker printers for status /// and print job data. Default: 1 minute. /// public TimeSpan PollingInterval { get; set; } = TimeSpan.FromMinutes(1); /// /// Timeout for individual HTTP requests to a Moonraker printer. /// Default: 15 seconds. /// public TimeSpan RequestTimeout { get; set; } = TimeSpan.FromSeconds(15); /// /// Whether the Moonraker printer sync service is enabled. /// Set to false to disable without removing the service registration. /// Default: true. /// public bool Enabled { get; set; } = true; /// /// Maximum number of print history items to fetch per printer per sync cycle. /// Controls the batch size when syncing print jobs from Moonraker. /// Default: 25. /// public int HistoryBatchSize { get; set; } = 25; }