diff --git a/src/PolyTrader.App.Avalonia/ViewModels/LauncherViewModels.cs b/src/PolyTrader.App.Avalonia/ViewModels/LauncherViewModels.cs new file mode 100644 index 0000000..a0b473b --- /dev/null +++ b/src/PolyTrader.App.Avalonia/ViewModels/LauncherViewModels.cs @@ -0,0 +1,44 @@ +using Avalonia.Media; +using PolyTrader.App.Avalonia.Shell; + +namespace PolyTrader.App.Avalonia.ViewModels +{ + /// Anzeige-Zeile der Account-Übersicht im Launcher. + public sealed class AccountOverviewRow + { + public int AccountId { get; init; } + public string Name { get; init; } = string.Empty; + public string Modules { get; init; } = string.Empty; + public string WalletAddress { get; init; } = string.Empty; + public decimal Balance { get; init; } + public decimal Pnl3d { get; init; } + public decimal WinRate3d { get; init; } + public decimal OverallPnl { get; init; } + } + + /// Anzeige-Zeile für auffällige Trades der letzten 24 Stunden. + public sealed class NotableTradeRow + { + public string Module { get; init; } = string.Empty; + public string Market { get; init; } = string.Empty; + public decimal Pnl { get; init; } + public decimal PnlPct { get; init; } + } + + /// Anzeige-Zeile für Warnungen & Fehler aus den Tages-JSONL-Logs. + public sealed class LogAlertRow + { + public string Time { get; init; } = string.Empty; + public string Level { get; init; } = string.Empty; + public string Message { get; init; } = string.Empty; + } + + /// Kachel-Datenmodell für Modul-PnL/Winrate im Launcher. + public sealed class ModuleKpiTile + { + public string ModuleName { get; init; } = string.Empty; + public string Text { get; init; } = string.Empty; + public bool IsPositive { get; init; } = true; + public IBrush ForegroundBrush => ThemeManager.Brush(IsPositive ? "AppPositiveBrush" : "AppNegativeBrush"); + } +} diff --git a/src/PolyTrader.App.Avalonia/Views/LauncherWindow.axaml b/src/PolyTrader.App.Avalonia/Views/LauncherWindow.axaml index afd6ef3..d9e66d2 100644 --- a/src/PolyTrader.App.Avalonia/Views/LauncherWindow.axaml +++ b/src/PolyTrader.App.Avalonia/Views/LauncherWindow.axaml @@ -2,20 +2,16 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="using:PolyTrader.App.Avalonia.Controls" xmlns:shell="using:PolyTrader.App.Avalonia.Shell" + xmlns:vm="using:PolyTrader.App.Avalonia.ViewModels" x:Class="PolyTrader.App.Avalonia.Views.LauncherWindow" Title="PolyTrader" - Width="1600" Height="700" + Width="1600" Height="900" WindowState="Maximized"> @@ -65,10 +61,97 @@ - + + + + + + + + + +