using System.ComponentModel.DataAnnotations;
using Lada.Framework.Data.Domains.BaseEntities;

namespace Lada.Framework.Data.Domains.Premises
{
    /// <summary>
    /// Option/khoảng giá trị kèm điểm cho mỗi tiêu chí
    /// VD: "Nhà thô" = 5 điểm, "Giá &lt; 5 triệu" = 10 điểm
    /// </summary>
    public class PremiseScoringOption : BaseEntityWithKey<int>
    {
        /// <summary>
        /// FK → PremiseScoringCriteria
        /// </summary>
        public int CriteriaId { get; set; }

        /// <summary>
        /// Nhãn hiển thị (VD: "Nhà thô", "< 5 triệu", "1 chiều")
        /// </summary>
        [MaxLength(200)]
        public string Label { get; set; } = string.Empty;

        /// <summary>
        /// Giá trị min (chỉ dùng cho CriteriaType = Range)
        /// null = không giới hạn dưới
        /// </summary>
        public decimal? MinValue { get; set; }

        /// <summary>
        /// Giá trị max (chỉ dùng cho CriteriaType = Range)
        /// null = không giới hạn trên
        /// </summary>
        public decimal? MaxValue { get; set; }

        /// <summary>
        /// Điểm khi chọn option này
        /// </summary>
        public int Score { get; set; }

        /// <summary>
        /// Thứ tự hiển thị
        /// </summary>
        public int DisplayOrder { get; set; }

        #region Navigation Properties

        public virtual PremiseScoringCriteria Criteria { get; set; } = null!;

        #endregion
    }
}
