using System;
using System.Collections.Generic;

namespace EventsAppQuest.Domain.Models
{
    /// <summary>
    /// Score de aderência da proposta ao briefing do cliente (avaliação objetiva da adequação ao evento).
    /// </summary>
    [Serializable]
    public class ProposalFitScore
    {
        /// <summary>Score geral de aderência (0-100).</summary>
        public int OverallScore { get; set; }

        /// <summary>Aderência ao orçamento alvo (0-100).</summary>
        public int BudgetFitScore { get; set; }

        /// <summary>Aderência ao mood desejado (0-100).</summary>
        public int MoodFitScore { get; set; }

        /// <summary>Aderência à capacidade/convidados (0-100).</summary>
        public int CapacityFitScore { get; set; }

        /// <summary>Presença de elementos obrigatórios (0-100).</summary>
        public int MustHaveFitScore { get; set; }

        /// <summary>Risco comercial (0-100; maior = mais risco).</summary>
        public int RiskScore { get; set; }

        /// <summary>Pontos fortes / destaques da proposta em relação ao briefing.</summary>
        public List<string> Highlights { get; set; } = new List<string>();

        /// <summary>Lacunas em relação ao briefing (o que falta ou não adere).</summary>
        public List<string> Gaps { get; set; } = new List<string>();

        /// <summary>Recomendações para melhorar a aderência.</summary>
        public List<string> Recommendations { get; set; } = new List<string>();
    }
}
