using Managing.Infrastructure.Databases.MongoDb.Attributes;
using Managing.Infrastructure.Databases.MongoDb.Configurations;
using Exilion.TradingAtomics;
using static Managing.Common.Enums;

namespace Managing.Infrastructure.Databases.MongoDb.Collections
{
    [BsonCollection("Backtests")]
    public class BacktestDto : Document
    {
        public decimal FinalPnl { get; set; }
        public int WinRate { get; set; }
        public decimal GrowthPercentage { get; set; }
        public decimal HodlPercentage { get; set; }
        public Ticker Ticker { get; set; }
        public string Scenario { get; set; }
        public List<PositionDto> Positions { get; set; }
        public List<SignalDto> Signals { get; set; }
        public Timeframe Timeframe { get; set; }
        public RiskLevel RiskLevel { get; set; }
        public string AccountName { get; set; }
        public List<CandleDto> Candles { get; set; }
        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
        public BotType BotType { get; set; }
        public MoneyManagementDto MoneyManagement { get; internal set; }
        public MoneyManagementDto OptimizedMoneyManagement { get; internal set; }
        public UserDto User { get; set; }
        public PerformanceMetrics Statistics { get; set; }
        public double Score { get; set; }
    }
}
