using Lada.Framework.Data.Enums;

namespace Ladaer.BackEnd.Infrastructures.DTO.Items.Premises
{
    /// <summary>
    /// Item hiển thị danh sách mặt bằng
    /// </summary>
    public class PremiseItem
    {
        public int Id { get; set; }
        public string Code { get; set; } = string.Empty;
        public PremiseStatus Status { get; set; }
        public string StatusName => Status.ToString();
        public string AddressDetail { get; set; } = string.Empty;
        public int AgencyId { get; set; }
        public string AgencyName { get; set; } = string.Empty;
        public int CityId { get; set; }
        public string CityName { get; set; } = string.Empty;
        public int DistrictId { get; set; }
        public string DistrictName { get; set; } = string.Empty;
        public int WardId { get; set; }
        public string WardName { get; set; } = string.Empty;
        public int TotalScore { get; set; }
        public string? Description { get; set; }
        public string CreatedByUserName { get; set; } = string.Empty;
        public DateTimeOffset? CreatedTime { get; set; }
    }

    /// <summary>
    /// Item hiển thị thông tin liên hệ
    /// </summary>
    public class PremiseContactItem
    {
        public int Id { get; set; }
        public string FullName { get; set; } = string.Empty;
        public string PhoneNumber { get; set; } = string.Empty;
        public PremiseContactRole Role { get; set; }
        public string RoleName => Role.ToString();
        public string? Note { get; set; }
    }

    /// <summary>
    /// Item hiển thị điểm chấm
    /// </summary>
    public class PremiseScoreItem
    {
        public int Id { get; set; }
        public int CriteriaId { get; set; }
        public string CriteriaName { get; set; } = string.Empty;
        public ScoringCriteriaType CriteriaType { get; set; }
        public int? SelectedOptionId { get; set; }
        public string? SelectedOptionLabel { get; set; }
        public string? TextValue { get; set; }
        public decimal? NumericValue { get; set; }
        public int Score { get; set; }
        public string? Note { get; set; }
    }
}
