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

namespace EventsAppQuest.Web.Domain
{
    /// <summary>
    /// Análise de SLA do ciclo: tempo estimado, tempo decorrido, segmentos e risco de atraso.
    /// </summary>
    [Serializable]
    public class EventCycleSLAState
    {
        public string CycleId;
        /// <summary>Tempo total esperado do ciclo em dias (heurística).</summary>
        public int TotalEstimatedCycleTimeDays;
        /// <summary>Tempo já decorrido desde o início do ciclo em dias.</summary>
        public int CurrentElapsedCycleTimeDays;

        public int LeadToQuestExpectedDays;
        public int QuestToHandoffExpectedDays;
        public int HandoffToProducerAcceptanceExpectedDays;
        public int AcceptanceToPreparationExpectedDays;
        public int PreparationToExecutionExpectedDays;
        public int ExecutionToFinalReportExpectedDays;
        public int FinalReportToHotelAcceptanceExpectedDays;

        public List<EventCycleSLASegment> Segments = new List<EventCycleSLASegment>();
        public EventCycleDelaySeverity DelayRiskLevel;
        public string MainDelayReason;
        public DateTime? LastEvaluatedAt;
    }
}
