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

namespace EventsAppQuest.Domain.Models
{
    /// <summary>
    /// Resumo executivo de decisão para fechamento: síntese clara e comercial da proposta recomendada.
    /// </summary>
    [Serializable]
    public class ProposalDecisionSummary
    {
        /// <summary>Id da proposta recomendada.</summary>
        public string RecommendedProposalId { get; set; }

        /// <summary>Manchete principal (uma frase de impacto).</summary>
        public string ExecutiveHeadline { get; set; }

        /// <summary>Resumo curto executivo (2–3 frases).</summary>
        public string ExecutiveShortSummary { get; set; }

        /// <summary>Principais razões da decisão (lista curta).</summary>
        public List<string> MainDecisionReasons { get; set; } = new List<string>();

        /// <summary>Riscos-chave a considerar.</summary>
        public List<string> KeyRisks { get; set; } = new List<string>();

        /// <summary>Conclusão sobre orçamento (ex.: "Dentro do alvo", "Acima — justificado").</summary>
        public string BudgetConclusion { get; set; }

        /// <summary>Conclusão sobre experiência/jornada (ex.: "Evolução visual estruturada").</summary>
        public string ExperienceConclusion { get; set; }

        /// <summary>Conclusão operacional (ex.: "Viável; atenção a reconfigurações").</summary>
        public string OperationalConclusion { get; set; }

        /// <summary>Mensagem final de venda para o cliente.</summary>
        public string FinalSalesMessage { get; set; }

        /// <summary>Próxima ação sugerida (ex.: "Apresentar proposta recomendada ao cliente").</summary>
        public string SuggestedNextAction { get; set; }

        /// <summary>Nível de prontidão para decisão/fechamento.</summary>
        public ProposalDecisionReadinessLevel DecisionReadinessLevel { get; set; }
    }
}
