namespace IronTelemetry.Client;
///
/// Configuration options for IronTelemetry SDK.
///
public class TelemetryOptions
{
///
/// The DSN (Data Source Name) for your project.
/// Format: https://{public_key}@irontelemetry.com
///
public string Dsn { get; set; } = string.Empty;
///
/// The environment (e.g., "production", "staging", "development").
///
public string? Environment { get; set; }
///
/// The application version.
///
public string? AppVersion { get; set; }
///
/// The application build number.
///
public string? AppBuild { get; set; }
///
/// Sample rate for events (0.0 to 1.0). Default is 1.0 (100%).
///
public double SampleRate { get; set; } = 1.0;
///
/// Maximum number of breadcrumbs to store. Default is 100.
///
public int MaxBreadcrumbs { get; set; } = 100;
///
/// Enable debug logging. Default is false.
///
public bool Debug { get; set; }
///
/// Callback to filter exceptions before sending.
/// Return false to skip sending the exception.
///
public Func? BeforeSend { get; set; }
///
/// Whether to attach stack trace to messages. Default is false.
///
public bool AttachStacktrace { get; set; }
///
/// Timeout for sending events. Default is 5 seconds.
///
public TimeSpan SendTimeout { get; set; } = TimeSpan.FromSeconds(5);
///
/// Custom HTTP handler for testing or proxy scenarios.
///
public HttpMessageHandler? HttpHandler { get; set; }
///
/// Enable offline queue for failed sends. Default is true.
/// When enabled, failed sends are persisted to disk and retried automatically.
///
public bool EnableOfflineQueue { get; set; } = true;
///
/// Directory to store offline queue. Defaults to LocalApplicationData/IronTelemetry/Queue.
///
public string? OfflineQueueDirectory { get; set; }
///
/// Maximum items to store in offline queue. Oldest items dropped when exceeded.
/// Default: 1000
///
public int MaxOfflineQueueSize { get; set; } = 1000;
}