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

namespace AMESCoreStudio.WebApi.Models.BAS
{
    /// <summary>
    /// 流程資料
    /// </summary>
    [Table("FLOW_RULE", Schema = "JHAMES")]
    public class FlowRule
    {
        /// <summary>
        /// 流程編號
        /// </summary>
        [Key]
        [Column("FLOW_RULE_ID")]
        [DataMember]
        public int FlowRuleID { get; set; }

        /// <summary>
        /// 流程名稱
        /// </summary>
        [Column("FLOW_RULE_NAME")]
        [DataMember]
        [Display(Name = "流程名稱")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(50, ErrorMessage = "{0},不能大于{1}")]
        public string FlowRuleName { get; set; }

        /// <summary>
        /// 流程描述
        /// </summary>
        [Column("FLOW_RULE_DESC")]
        [DataMember]
        [Display(Name = "流程描述")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(200, ErrorMessage = "{0},不能大于{1}")]
        public string FlowRuleDesc { get; set; }

        /// <summary>
        /// 流程狀態
        /// </summary>
        [Column("FLOW_STATUS")]
        [Display(Name = "流程狀態")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(1, ErrorMessage = "{0},不能大于{1}")]
        public string FlowStatus { get; set; } = "A";

        /// <summary>
        /// 系統標記
        /// </summary>
        [Column("SYS_TYPE")]
        [DataMember]
        [Display(Name = "系統標記")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(1, ErrorMessage = "{0},不能大于{1}")]
        public string SysType { get; set; } = "U";


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

        /// <summary>
        /// 流程類型
        /// </summary>
        [Column("FLOW_TYPE")]
        [Display(Name = "流程類型")]
        [DataMember]
        public string FlowType { get; set; }

        /// <summary>
        /// 工單屬性
        /// </summary>
        [Column("PROCESS_TYPE_NO")]
        [DataMember]
        [Display(Name = "工單屬性")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(1, ErrorMessage = "{0},不能大于{1}")]
        public string ProcessTypeNo { get; set; }

        /// <summary>
        /// 建立人員
        /// </summary>
        [Column("CREATE_USERID")]
        [DataMember]
        public int CreateUserId { get; set; }

        /// <summary>
        /// 建立時間
        /// </summary>
        [Column("CREATE_DATE")]
        [DataMember]
        public DateTime CreateDate { get; set; }

        /// <summary>
        /// 修改時間
        /// </summary>
        [Column("UPDATE_DATE")]
        public DateTime UpdateDate { get; set; }

    }
}