using System;
using System.Collections.Generic;
using EventsAppQuest.Domain.Enums;

namespace EventsAppQuest.Core
{
    /// <summary>
    /// Estado agregador da progressão comercial adaptável do fluxo Quest.
    /// Não impõe tempo rígido; apenas organiza momentos de impacto e readiness.
    /// </summary>
    [Serializable]
    public class QuestCommercialFlowProgress
    {
        public QuestPresentationFlowMode FlowMode;
        public QuestCoreFlowStage CurrentCoreStage;
        public QuestFlowProgressState ProgressState;
        public string CurrentImpactMomentId;
        public List<string> CompletedImpactMoments = new List<string>();
        public List<string> RemainingHighValueMoments = new List<string>();
        public bool IsReadyForComparison;
        public bool IsReadyForClosing;
        public string FlowSummary;
        public DateTime? LastProgressedAt;
    }
}

