// PRE-GENERATED (design session). AI structured-output model.
using System.Collections.Generic;

namespace DansoriEQ.Core.Ai;

/// <summary>Structured result returned by the AI tool call for an EQ request.</summary>
public sealed class EqDelta
{
    public double PreampDb { get; set; }
    public List<EqDeltaFilter> Filters { get; set; } = new();
    public string Explanation { get; set; } = "";
    /// <summary>false = merge onto current state, true = replace all bands.</summary>
    public bool Replace { get; set; } = false;
    public EqDeltaEffects? Effects { get; set; }
}

public sealed class EqDeltaEffects
{
    public double? Crossfeed { get; set; }        // 0..100
    public double? BassBoostDb { get; set; }       // dB
    public double? PreampLeftDb { get; set; }      // <= 0
    public double? PreampRightDb { get; set; }     // <= 0
}

public sealed class EqDeltaFilter
{
    public string Type { get; set; } = "PK";   // PK | LSC | HSC
    public double Fc { get; set; }
    public double Gain { get; set; }
    public double Q { get; set; } = 1.0;
    public bool Enabled { get; set; } = true;
}
