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

namespace EventsAppQuest.Core
{
    /// <summary>
    /// Estado do fluxo curto do Quest para venda assistida (5–10 minutos).
    /// Camada organizadora: não substitui controllers detalhados; apenas orquestra macro etapas.
    /// </summary>
    [Serializable]
    public class QuestShortFlowState
    {
        public QuestPresentationFlowMode FlowMode;
        public QuestCoreFlowStage CurrentCoreStage;
        public int TotalCoreStages;
        public bool IsSellerGuided;
        public int EstimatedRemainingMinutes;
        public string CurrentStageSummary;
        public bool IsReadyForClosing;
        public DateTime? LastStageChangedAt;

        /// <summary>Ids dos hotspots priorizados no modo curto (ordem de impacto).</summary>
        public List<string> ImpactHotspotIds = new List<string>();

        /// <summary>Índice actual dentro de ImpactHotspotIds (0-based).</summary>
        public int CurrentImpactHotspotPointer;
    }
}

