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

namespace AMESCoreStudio.WebApi.Models.SYS
{
    /// <summary>
    /// 功能資料表
    /// </summary>
    [Table("PROGRAM_INFO", Schema = "JHSYS")]
    [DataContract]

    public class ProgramInfo
    {
        /// <summary>
        /// 功能編號
        /// </summary>
        [Key]
        [Column("PROGRAM_ID")]
        [DataMember]
        public int ProgramID { get; set; }

        /// <summary>
        /// 功能代碼
        /// </summary>
        [Column("PROGRAM_NO")]
        [DataMember]
        [Display(Name = "功能代碼")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(10, ErrorMessage = "{0},不能大于{1}")]
        public string ProgramNo { get; set; }

        /// <summary>
        /// 功能名稱
        /// </summary>
        [Column("PROGRAM_NAME")]
        [DataMember]
        [Display(Name = "功能名稱")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(20, ErrorMessage = "{0},不能大于{1}")]
        public string ProgramName { get; set; }


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

        /// <summary>
        /// 功能路徑
        /// </summary>
        [Column("PROGRAM_PATH")]
        [DataMember]
        [Display(Name = "功能路徑")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(100, ErrorMessage = "{0},不能大于{1}")]
        public string ProgramPath { get; set; }

        /// <summary>
        /// 模組編號
        /// </summary>
        [Column("MODULE_ID")]
        [DataMember]
        [Required]
        [Display(Name = "模組編號")]
        public int ModuleID { get; set; }

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

        /// <summary>
        /// 隱藏標記
        /// </summary>
        [Column("HIDE_FLAG")]
        [DataMember]
        [Display(Name = "隱藏標記")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(1, ErrorMessage = "{0},不能大于{1}")]
        public string HideFlag { get; set; }

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

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

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

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