using Managing.Domain.Bots;
using Orleans;

namespace Managing.Domain.Backtests;

/// <summary>
/// Lightweight backtest class for Orleans serialization
/// Contains only the essential properties needed for backtest results
/// </summary>
[GenerateSerializer]
public class LightBacktest
{
    [Id(0)] public string Id { get; set; } = string.Empty;
    [Id(1)] public TradingBotConfig Config { get; set; } = new();
    [Id(2)] public decimal FinalPnl { get; set; }
    [Id(3)] public int WinRate { get; set; }
    [Id(4)] public decimal GrowthPercentage { get; set; }
    [Id(5)] public decimal HodlPercentage { get; set; }
    [Id(6)] public DateTime StartDate { get; set; }
    [Id(7)] public DateTime EndDate { get; set; }
    [Id(8)] public decimal? MaxDrawdown { get; set; }
    [Id(9)] public decimal Fees { get; set; }
    [Id(10)] public double? SharpeRatio { get; set; }
    [Id(11)] public double Score { get; set; }
    [Id(12)] public string ScoreMessage { get; set; } = string.Empty;
} 