using System;
using System.Collections.Generic;
using EventsAppQuest.Web.Core;

namespace EventsAppQuest.Web.Domain
{
    /// <summary>
    /// Cenário simulado do ciclo: estado atual ou hipotético com impacto previsto.
    /// </summary>
    [Serializable]
    public class EventCycleScenarioSimulation
    {
        public string SimulationId;
        public string CycleId;
        public string ScenarioName;
        public EventCycleScenarioType ScenarioType;
        public string BaseClosureStatus;
        public string SimulatedClosureStatus;
        /// <summary>0-100: score de performance base (actual).</summary>
        public int BasePerformanceScore;
        /// <summary>0-100: score simulado após hipótese.</summary>
        public int SimulatedPerformanceScore;
        public EventCycleDelaySeverity BaseDelayRiskLevel;
        public EventCycleDelaySeverity SimulatedDelayRiskLevel;
        /// <summary>Ids de gargalos assumidos como resolvidos neste cenário.</summary>
        public List<string> AssumedResolvedBottlenecks = new List<string>();
        /// <summary>Ids de ações assumidas como concluídas neste cenário.</summary>
        public List<string> AssumedCompletedActions = new List<string>();
        public string PredictedImpactSummary;
        public DateTime? GeneratedAt;
    }
}
