using System;

namespace PolyTrader.App.Avalonia.ViewModels
{
    /// <summary>Anzeige-Zeile des Historie-Grids (Konto bereits zum Namen aufgelöst).</summary>
    public sealed class DashboardTradeRow
    {
        public string Module { get; init; } = string.Empty;
        public string Account { get; init; } = string.Empty;
        public string Market { get; init; } = string.Empty;
        public string Outcome { get; init; } = string.Empty;
        public string Side { get; init; } = string.Empty;
        public decimal EntryPrice { get; init; }
        public decimal ExitPrice { get; init; }
        public decimal Size { get; init; }
        public decimal RealizedPnl { get; init; }
        public decimal PnlPercent { get; init; }
        public DateTime ClosedAt { get; init; }
    }

    /// <summary>Anzeige-Zeile des Modul-Grids (Tab „Module").</summary>
    public sealed class ModuleRow
    {
        public string Modul { get; init; } = string.Empty;
        public string Status { get; init; } = string.Empty;
        public string Hinweis { get; init; } = string.Empty;
        public string Aktion { get; init; } = string.Empty;

        /// <summary>
        /// Falsch, wenn das Modul einen Aktivierungs-Blocker hat (z.B. fehlender API-Key). Die
        /// WinForms-Fassung zeigte in dem Fall beim Klick einen Hinweisdialog; hier ist die
        /// Schaltfläche schlicht deaktiviert – der Grund steht ohnehin in der Spalte „Hinweis".
        /// </summary>
        public bool CanToggle { get; init; } = true;
    }

    /// <summary>
    /// Monatszeile der BWA-Übersicht. Die Werte sind bereits in die gewählte Währung umgerechnet
    /// und als Text formatiert – die Umrechnung passiert einmal beim Aufbau, nicht je Bindung.
    /// </summary>
    public sealed class MonthlyRow
    {
        public string Month { get; init; } = string.Empty;
        public string Net { get; init; } = string.Empty;
        public string Deposits { get; init; } = string.Empty;
        public string Withdrawals { get; init; } = string.Empty;
        public string Fees { get; init; } = string.Empty;
        public string Volume { get; init; } = string.Empty;
        public int Trades { get; init; }
        public string Closing { get; init; } = string.Empty;
    }
}
