using System.Collections.Generic;

namespace NexusReader.Infrastructure.Configuration;

/// <summary>
/// Settings for configuring allowed tags, attributes, CSS properties, and schemes in HtmlSanitizerService.
/// </summary>
public class HtmlSanitizerSettings
{
    public const string SectionName = "HtmlSanitizer";

    /// <summary>
    /// Gets or sets the list of HTML tags that are allowed.
    /// If null or empty, the default allowed tags list is used.
    /// </summary>
    public List<string>? AllowedTags { get; set; }

    /// <summary>
    /// Gets or sets the list of HTML attributes that are allowed.
    /// If null or empty, the default allowed attributes list is used.
    /// </summary>
    public List<string>? AllowedAttributes { get; set; }

    /// <summary>
    /// Gets or sets the list of CSS properties that are allowed.
    /// If null or empty, the default allowed CSS properties list is used.
    /// </summary>
    public List<string>? AllowedCssProperties { get; set; }

    /// <summary>
    /// Gets or sets the list of URI schemes that are allowed (e.g. "http", "https").
    /// If null or empty, the default allowed schemes list is used.
    /// </summary>
    public List<string>? AllowedSchemes { get; set; }
}
