using Exilion.TradingAtomics; using Managing.Infrastructure.Databases.MongoDb.Attributes; using Managing.Infrastructure.Databases.MongoDb.Configurations; using MongoDB.Bson; using MongoDB.Bson.Serialization.Attributes; namespace Managing.Infrastructure.Databases.MongoDb.Collections { [BsonCollection("Backtests")] public class BacktestDto : Document { [BsonRepresentation(BsonType.Decimal128)] public decimal FinalPnl { get; set; } public int WinRate { get; set; } [BsonRepresentation(BsonType.Decimal128)] public decimal GrowthPercentage { get; set; } [BsonRepresentation(BsonType.Decimal128)] public decimal HodlPercentage { get; set; } public TradingBotConfigDto Config { get; set; } public List Positions { get; set; } public List Signals { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public MoneyManagementDto MoneyManagement { get; internal set; } public MoneyManagementDto OptimizedMoneyManagement { get; internal set; } public UserDto User { get; set; } public PerformanceMetrics Statistics { get; set; } [BsonRepresentation(BsonType.Decimal128)] public decimal Fees { get; set; } public double Score { get; set; } public string Identifier { get; set; } public string RequestId { get; set; } public string? Metadata { get; set; } } }