using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace YBEE.EQM.Core;

/// <summary>
/// 成绩分段配置
/// </summary>
public class ExamScoreRange : IEntity
{
    /// <summary>
    /// 主键
    /// </summary>
    [Comment("主键")]
    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int Id { get; set; }
    /// <summary>
    /// 序
    /// </summary>
    [Comment("序")]
    [Required]
    public int Sequence { get; set; }
    /// <summary>
    /// 类型
    /// </summary>
    [Comment("类型")]
    [Required]
    public ExamScoreRangeType Type { get; set; }
    /// <summary>
    /// 名称
    /// </summary>
    [Comment("名称")]
    [Required, StringLength(100)]
    public string Name { get; set; }
    /// <summary>
    /// 别称
    /// </summary>
    [Comment("别称")]
    [Required, StringLength(100)]
    public string NickName { get; set; }
    /// <summary>
    /// 开始值
    /// </summary>
    [Comment("开始值")]
    [Required, Column(TypeName = "decimal(16, 8)")]
    public decimal BeginValue { get; set; }
    /// <summary>
    /// 包含开始值
    /// </summary>
    [Comment("包含开始值")]
    [Required]
    public bool BeginInclude { get; set; }
    /// <summary>
    /// 结束值
    /// </summary>
    [Comment("结束值")]
    [Required, Column(TypeName = "decimal(16, 8)")]
    public decimal EndValue { get; set; }
    /// <summary>
    /// 包含结束值
    /// </summary>
    [Comment("包含结束值")]
    [Required]
    public bool EndInclude { get; set; }
    /// <summary>
    /// 备注
    /// </summary>
    [Comment("备注")]
    [StringLength(200)]
    public string Remark { get; set; }
}
