using System.Collections.Generic;

namespace CMSMicroservice.Infrastructure.Services.Monitoring;

/// <summary>
/// تنظیمات Monitoring و Alerting
/// در appsettings.json تعریف می‌شود
/// </summary>
public class MonitoringSettings
{
    public const string SectionName = "Monitoring";
    
    /// <summary>
    /// فعال بودن Sentry
    /// </summary>
    public bool SentryEnabled { get; set; } = false;
    
    /// <summary>
    /// Sentry DSN
    /// </summary>
    public string? SentryDsn { get; set; }
    
    /// <summary>
    /// فعال بودن Slack Notifications
    /// </summary>
    public bool SlackEnabled { get; set; } = false;
    
    /// <summary>
    /// Slack Webhook URL
    /// </summary>
    public string? SlackWebhookUrl { get; set; }
    
    /// <summary>
    /// فعال بودن Email Alerts
    /// </summary>
    public bool EmailAlertsEnabled { get; set; } = false;
    
    /// <summary>
    /// لیست ایمیل‌های Admin برای دریافت Alert
    /// </summary>
    public List<string> AdminEmails { get; set; } = new();
    
    /// <summary>
    /// فعال بودن SMS Notifications به کاربران
    /// </summary>
    public bool SmsNotificationsEnabled { get; set; } = false;
    
    /// <summary>
    /// SMS Gateway API Key
    /// </summary>
    public string? SmsApiKey { get; set; }
    
    /// <summary>
    /// SMS Gateway Base URL
    /// </summary>
    public string? SmsGatewayUrl { get; set; }
}
