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

namespace EventsAppQuest.Domain.Models
{
    /// <summary>
    /// Etapa da narrativa de apresentação comercial da proposta (modo de venda guiada).
    /// </summary>
    [Serializable]
    public class ProposalPresentationStep
    {
        /// <summary>Identificador único da etapa.</summary>
        public string Id { get; set; }

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

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

        /// <summary>Tipo da etapa (Welcome, ThemeOverview, zone highlight, etc.).</summary>
        public ProposalPresentationStepType StepType { get; set; }

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

        /// <summary>Zonas de posicionamento relacionadas (quando aplicável).</summary>
        public List<PlacementZoneType> RelatedPlacementZones { get; set; } = new List<PlacementZoneType>();

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

        /// <summary>Se true, etapa em destaque na apresentação.</summary>
        public bool IsHighlight { get; set; }
    }
}
