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


namespace AMESCoreStudio.WebApi.Models.SYS
{
    /// <summary>
    /// 部门资料表
    /// </summary>
    [Table("DEPT_INFO", Schema = "JHSYS")]
    [DataContract]
    public class DeptInfo
    {
        /// <summary>
        /// 部门編號
        /// </summary>
        [Key]
        [Column("DEPT_ID")]
        [DataMember]
        public int DeptID { get; set; }

        /// <summary>
        /// 部门代码
        /// </summary>
        [Column("DEPT_NO")]
        [DataMember]
        [Display(Name = "部门代码")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(10, ErrorMessage = "{0},不能大于{1}")]
        public string DeptNo { get; set; }

        /// <summary>
        /// 部门名称
        /// </summary>
        [Column("DEPT_NAME")]
        [DataMember]
        [Display(Name = "部门名称")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(20, ErrorMessage = "{0},不能大于{1}")]
        public string DeptName { get; set; }

        /// <summary>
        /// 部门描述
        /// </summary>
        [Column("DEPT_DESC")]
        [DataMember]
        [Display(Name = "部门描述")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(100, ErrorMessage = "{0},不能大于{1}")]
        public string DeptDesc { get; set; }

        /// <summary>
        /// 部门类别
        /// </summary>
        [Column("DEPT_TYPEID")]
        [Display(Name = "部门类别")]
        [DataMember]
        public EnumDeptType DeptTypeID { get; set; }

        /// <summary>
        /// 上一级部门编号
        /// </summary>
        [Column("PARENT_DEPTID")]
        [DataMember]
        [IgnoreProperty]
        public int? ParentDeptID { get; set; } = null;

        /// <summary>
        /// 排序
        /// </summary>
        [Column("SORT_SEQ")]
        [DataMember]
        [Display(Name = "排序")]
        [Required(ErrorMessage = "{0},不能空白")]
        public int SortSeq { get; set; }

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

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

        /// <summary>
        /// 修改人員
        /// </summary>
        [Column("UPDATE_USERID")]
        public int UpdateUserId { get; set; }

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