using System;
using System.Collections.Generic;

namespace EventsAppQuest.Domain.Models
{
    /// <summary>
    /// Estado visual da cena em uma fase do evento (como o espaço se apresenta naquele momento).
    /// </summary>
    [Serializable]
    public class ProposalSceneState
    {
        /// <summary>Identificador único.</summary>
        public string Id { get; set; }

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

        /// <summary>Nome do estado (ex.: Recepção — Entrada).</summary>
        public string Name { get; set; }

        /// <summary>Descrição do estado visual da cena.</summary>
        public string Description { get; set; }

        /// <summary>Ids dos itens do showroom ativos neste estado.</summary>
        public List<string> ActiveShowroomItemIds { get; set; } = new List<string>();

        /// <summary>Tipos de zona ativos neste estado (ex.: Entrance, StageArea).</summary>
        public List<string> ActiveZoneTypes { get; set; } = new List<string>();

        /// <summary>Ids dos hotspots principais neste estado.</summary>
        public List<string> PrimaryHotspotIds { get; set; } = new List<string>();

        /// <summary>Mood visual deste estado (ex.: acolhedor, festivo).</summary>
        public string VisualMood { get; set; }

        /// <summary>Resumo da transição a partir do estado anterior (ex.: fluxo direto, reconfiguração).</summary>
        public string TransitionFromPreviousSummary { get; set; }

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