using System;
using System.Collections.Generic;

namespace EventsAppQuest.Core
{
    /// <summary>
    /// Resumo compartilhável da sessão Quest: visão textual legível para comercial/atendimento,
    /// preparado para futura integração com web/backend/CRM/atendimento.
    /// </summary>
    [Serializable]
    public class QuestSessionShareableSummary
    {
        /// <summary>Identificador da sessão.</summary>
        public string SessionId { get; set; }

        /// <summary>Título curto do resumo.</summary>
        public string Title { get; set; }

        /// <summary>Resumo executivo em 1–2 frases.</summary>
        public string ExecutiveSummary { get; set; }

        /// <summary>Rótulo da proposta recomendada.</summary>
        public string RecommendedProposalLabel { get; set; }

        /// <summary>Rótulo da proposta escolhida.</summary>
        public string SelectedProposalLabel { get; set; }

        /// <summary>Etiqueta legível da decisão final.</summary>
        public string FinalDecisionLabel { get; set; }

        /// <summary>Etiqueta legível do CTA confirmado.</summary>
        public string ConfirmedCTALabel { get; set; }

        /// <summary>Etiqueta da próxima ação sugerida.</summary>
        public string SuggestedNextActionLabel { get; set; }

        /// <summary>Etiqueta da prioridade de follow-up.</summary>
        public string FollowUpPriorityLabel { get; set; }

        /// <summary>Pontos-chave (highlights) da sessão.</summary>
        public List<string> KeyHighlights { get; set; } = new List<string>();

        /// <summary>Riscos ou pontos de atenção principais.</summary>
        public List<string> KeyRisks { get; set; } = new List<string>();

        /// <summary>Texto corrido legível pronto para cópia/compartilhamento.</summary>
        public string ShareableText { get; set; }

        /// <summary>Data/hora de geração (UTC).</summary>
        public DateTime GeneratedAt { get; set; }
    }
}

