using Orleans;
using Orleans.Concurrency;

namespace Managing.Application.Abstractions.Grains;

/// <summary>
/// Orleans grain interface for Genetic Backtest operations.
/// Uses the genetic request ID as the primary key (string).
/// The grain processes a single genetic request identified by its primary key.
/// </summary>
public interface IGeneticBacktestGrain : IGrainWithStringKey
{
    /// <summary>
    /// Processes the genetic backtest request for this grain's RequestId.
    /// The RequestId is determined by the grain's primary key.
    /// </summary>
    [OneWay]
    Task ProcessGeneticRequestAsync();
}