using System;

namespace EonaCat.LogStack.DependencyInjection
{
    /// <summary>
    /// Advanced configuration options for DI registration
    /// </summary>
    public sealed class LoggerDIOptions
    {
        /// <summary>
        /// Gets or sets whether named loggers should be eagerly initialized
        /// </summary>
        public bool EagerlyInitializeNamedLoggers { get; set; } = false;

        /// <summary>
        /// Gets or sets whether to register ILogger decorator
        /// </summary>
        public bool RegisterLoggerDecorator { get; set; } = true;

        /// <summary>
        /// Gets or sets the default logger name for constructor injection
        /// </summary>
        public string DefaultLoggerName { get; set; } = "Default";

        /// <summary>
        /// Gets or sets whether to enable telemetry integration
        /// </summary>
        public bool EnableTelemetry { get; set; } = true;

        /// <summary>
        /// Gets or sets whether to enable distributed tracing
        /// </summary>
        public bool EnableTracing { get; set; } = false;

        /// <summary>
        /// Gets or sets whether to enable performance monitoring
        /// </summary>
        public bool EnablePerformanceMonitoring { get; set; } = false;

        /// <summary>
        /// Gets or sets whether to enable health monitoring
        /// </summary>
        public bool EnableHealthMonitoring { get; set; } = true;
    }
}
