namespace NexusReader.Application.Common;

/// <summary>
/// Configurations for the monetization engine, controlling the thresholds at which
/// search queries trigger paywalls.
/// </summary>
public class RagMonetizationOptions
{
    public const string SectionName = "RagMonetization";

    /// <summary>
    /// The baseline score threshold above which global content might trigger a paywall if there is no local content.
    /// Default: 0.45.
    /// </summary>
    public double BaselineThreshold { get; set; } = 0.45;

    /// <summary>
    /// The similarity gap (Delta) required between global and local content to trigger an upgrade paywall.
    /// Default: 0.15.
    /// </summary>
    public double DeltaThreshold { get; set; } = 0.15;

    /// <summary>
    /// The absolute score required from global content to trigger an upgrade paywall.
    /// Default: 0.70.
    /// </summary>
    public double UpgradeThreshold { get; set; } = 0.70;
}
