using System;
using System.Collections.Generic;

namespace EventsAppQuest.Domain.Models
{
    /// <summary>
    /// Comparação temporal entre duas propostas ao longo da jornada do evento (evolução da experiência).
    /// </summary>
    [Serializable]
    public class ProposalTemporalComparison
    {
        /// <summary>Id da proposta tomada como base (referência).</summary>
        public string BaseProposalId { get; set; }

        /// <summary>Id da proposta comparada (alternativa).</summary>
        public string ComparedProposalId { get; set; }

        /// <summary>Comparações por fase do evento.</summary>
        public List<ProposalPhaseComparison> PhaseComparisons { get; set; } = new List<ProposalPhaseComparison>();

        /// <summary>Resumo geral da diferença de experiência ao longo do evento.</summary>
        public string OverallExperienceDifferenceSummary { get; set; }

        /// <summary>Momentos/fases em que a proposta base é mais forte (ex.: "Recepção", "Cerimônia").</summary>
        public List<string> StrongerMoments { get; set; } = new List<string>();

        /// <summary>Momentos/fases em que a proposta base é mais fraca.</summary>
        public List<string> WeakerMoments { get; set; } = new List<string>();

        /// <summary>Id da proposta com melhor continuidade visual ao longo da jornada (BaseProposalId ou ComparedProposalId).</summary>
        public string BetterVisualContinuity { get; set; }

        /// <summary>Id da proposta com melhor continuidade operacional (transições mais fluidas).</summary>
        public string BetterOperationalContinuity { get; set; }

        /// <summary>Id da proposta com melhor impacto comercial ao longo do tempo (hotspots, roteiro, upsell).</summary>
        public string BetterSalesImpact { get; set; }
    }
}
