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

namespace EventsAppQuest.Domain.Models
{
    /// <summary>
    /// Passo do roteiro guiado da proposta (apresentação ao cliente final).
    /// </summary>
    [Serializable]
    public class ProposalGuidedTourStep
    {
        /// <summary>Identificador único.</summary>
        public string Id { get; set; }

        /// <summary>Título do passo.</summary>
        public string Title { get; set; }

        /// <summary>Descrição / texto do passo.</summary>
        public string Description { get; set; }

        /// <summary>Id da fase do evento relacionada (EventMomentPhase), se aplicável.</summary>
        public string RelatedPhaseId { get; set; }

        /// <summary>Tipos de zona relacionados (ex.: StageArea, DiningArea).</summary>
        public List<string> RelatedZoneTypes { get; set; } = new List<string>();

        /// <summary>Ids dos itens do showroom relacionados a este passo.</summary>
        public List<string> RelatedShowroomItemIds { get; set; } = new List<string>();

        /// <summary>Tipo de foco (Welcome, ThemeHighlight, MomentHighlight, etc.).</summary>
        public ProposalGuidedTourFocusType FocusType { get; set; }

        /// <summary>Duração sugerida do passo em minutos.</summary>
        public int SuggestedDurationMinutes { get; set; }

        /// <summary>Mensagem comercial / pitch de venda para este passo.</summary>
        public string SalesMessage { get; set; }

        /// <summary>Ordem de exibição no roteiro (menor = antes).</summary>
        public int DisplayOrder { get; set; }

        /// <summary>Se true, é um momento-chave da apresentação.</summary>
        public bool IsKeyMoment { get; set; }
    }
}
