using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    ///  异常代码资料表
    /// </summary>
    [Table("ERROR_REASON", Schema = "JHAMES")]
    [DataContract]
    public class ErrorReason
    {
        /// <summary>
        /// 異常原因代碼
        /// </summary>
        [Key]
        [Column("REASON_NO")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "異常原因代碼")]
        [StringLength(6, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string ReasonNo { get; set; }

        /// <summary>
        /// 異常類別代碼
        /// </summary>
        [Column("CLASS_NO")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "異常類別代碼")]
        [StringLength(6, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string ClassNo { get; set; }

        /// <summary>
        /// 異常原因描述
        /// </summary>
        [Column("REASON_DESC")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "異常原因描述")]
        [StringLength(100, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string ReasonDesc { get; set; }

        /// <summary>
        /// 異常原因英文描述
        /// </summary>
        [Column("REASON_DESC_EN")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "異常原因英文描述")]
        [StringLength(100, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string ReasonDescEn { get; set; }

        /// <summary>
        /// 內外部損耗分類
        /// </summary>
        [Column("ERROR_TYPE")]
        [Display(Name = "內外部損耗分類")]
        [DataMember]
        public EnumErrorType ErrorType { get; set; }

        /// <summary>
        /// 責任單位
        /// </summary>
        [Column("RESPONSE_DEPT")]
        [DataMember]
        [Required]
        [Display(Name = "責任單位")]
        public int ResponseDept { get; set; }

        /// <summary>
        /// 內部流程代碼
        /// </summary>
        [Column("KPI_NO")]
        [Display(Name = "內部流程代碼")]
        [StringLength(20, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string KpiNo { get; set; }

        /// <summary>
        /// 成本屬性代碼
        /// </summary>
        [Column("COST_NO")]
        [Display(Name = "成本屬性代碼")]
        [StringLength(6, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string CostNo { get; set; }

        /// <summary>
        /// 生產單位
        /// </summary>
        [Column("SECTION_NO")]
        [DataMember]
        [Display(Name = "生產單位")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(6, ErrorMessage = "{0},不能大于{1}")]
        public string SectionNo { get; set; }
    }
}