using System;
using EventsAppQuest.Domain.Enums;

namespace EventsAppQuest.Domain.Models
{
    /// <summary>
    /// Transição entre dois momentos/fases do evento (continuidade e qualidade da passagem).
    /// </summary>
    [Serializable]
    public class EventMomentTransition
    {
        /// <summary>Id da fase de origem (EventMomentPhase).</summary>
        public string FromPhaseId { get; set; }

        /// <summary>Id da fase de destino (EventMomentPhase).</summary>
        public string ToPhaseId { get; set; }

        /// <summary>Tipo da transição (DirectFlow, Reconfiguration, GuestRelocation, etc.).</summary>
        public EventMomentTransitionType TransitionType { get; set; }

        /// <summary>Tempo estimado da transição em minutos.</summary>
        public int EstimatedTransitionMinutes { get; set; }

        /// <summary>Se true, exige reconfiguração do espaço entre as fases.</summary>
        public bool RequiresSpaceReset { get; set; }

        /// <summary>Se true, exige coordenação de fornecedor na passagem.</summary>
        public bool RequiresSupplierCoordination { get; set; }

        /// <summary>Score de fluidez da transição (0–100; maior = mais fluida).</summary>
        public int SmoothnessScore { get; set; }

        /// <summary>Observações sobre a transição (para exibição).</summary>
        public string Notes { get; set; }
    }
}
