namespace KArtSell.Modules.ModelOperations.ShadowRun;
///
/// Command to initiate a 252+ trading-day shadow run for model validation.
///
public sealed record ShadowRunCommand(
Guid ModelId,
Guid CorrelationId,
Guid IdempotencyKey,
DateOnly WindowStartDate,
DateOnly WindowEndDate,
MarketPhaseFilter PhaseFilter = MarketPhaseFilter.All)
{
public Guid RunId { get; } = Guid.NewGuid();
}
///
/// Market phases for segmented analysis during shadow run.
///
public enum MarketPhaseFilter
{
All = 0,
BullMarket = 1,
BearMarket = 2,
Sideways = 3,
HighVolatility = 4
}