using Orleans;

namespace Managing.Domain.Backtests;

/// <summary>
/// Metadata class for genetic algorithm backtests.
/// This class is designed to be Orleans-serializable.
/// </summary>
[GenerateSerializer]
public class GeneticBacktestMetadata
{
    [Id(0)] public int Generation { get; set; }
    [Id(1)] public string RequestId { get; set; } = string.Empty;
    [Id(2)] public DateTime CreatedAt { get; set; } = DateTime.UtcNow;

    public GeneticBacktestMetadata()
    {
    }

    public GeneticBacktestMetadata(int generation, string requestId = null)
    {
        Generation = generation;
        RequestId = requestId ?? string.Empty;
        CreatedAt = DateTime.UtcNow;
    }
}
