namespace PolyTrader.Modules.CopyTrading.Logic
{
    /// <summary>Farbkategorie einer Trade-Zeile. Die konkrete Farbe legt die jeweilige UI fest.</summary>
    public enum TradeRowTint
    {
        /// <summary>&lt; 0 % – Verlust.</summary>
        Loss,

        /// <summary>0–10 % – kleiner Gewinn.</summary>
        SmallWin,

        /// <summary>&gt; 10 % – deutlicher Gewinn.</summary>
        BigWin
    }

    /// <summary>
    /// Reine Einstufung von Trade-Zeilen nach realisiertem/unrealisiertem PnL-Prozent (getestet,
    /// damit die Schwellen belastbar sind): Verlust, 0–10 %, &gt; 10 %.
    ///
    /// <para>Liefert bewusst eine <see cref="TradeRowTint"/>-Kategorie statt einer Farbe: Die
    /// Modul-Logik ist damit frei von <c>System.Drawing</c> (seit .NET 7 Windows-only) und die
    /// Zuordnung Kategorie → Farbe liegt dort, wo sie hingehört – in der jeweiligen Oberfläche.</para>
    /// </summary>
    public static class TradeRowColoring
    {
        /// <summary>Schwelle, ab der ein Gewinn als deutlich gilt (in Prozent, exklusiv).</summary>
        public const decimal BigWinThresholdPercent = 10m;

        public static TradeRowTint ForPnlPercent(decimal pnlPercent) =>
            pnlPercent < 0m
                ? TradeRowTint.Loss
                : (pnlPercent > BigWinThresholdPercent ? TradeRowTint.BigWin : TradeRowTint.SmallWin);
    }
}
