using System;
using EventsAppQuest.Web.Core;

namespace EventsAppQuest.Web.Domain
{
    /// <summary>
    /// Oportunidade de venda no pipeline da camada Web (CRM hotel/espaço).
    /// Relaciona lead, proposta, sessão Quest, estágio, prioridade e próxima ação.
    /// </summary>
    [Serializable]
    public class SalesOpportunity
    {
        public string Id;
        public string LeadId;
        public string Title;
        public OpportunityStage Stage;
        public float Value;
        public string ProposalRecordId;
        public string SessionRecordId;
        public CommercialPriority CommercialPriority;
        public string SuggestedNextAction;
        public DateTime CreatedAt;
        public DateTime UpdatedAt;

        // Última sessão Quest aplicada (resumo para vista rápida)
        public string LastQuestSessionId;
        public WebSessionDecisionState? LastQuestDecisionState;
        public string LastQuestCTA;
        public string LastQuestNextAction;
        public FollowUpPriority? LastQuestFollowUpPriority;
        public string LastQuestEngagementLabel;
        public string LastQuestQualityLabel;
        public string LastQuestSummary;
        public string LastQuestRecommendedProposalId;
        public string LastQuestSelectedProposalId;
    }
}
