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

namespace AMESCoreStudio.WebApi.Models.SYS
{
    /// <summary>
    /// 用户资料表
    /// </summary>
    [Table("USER_INFO", Schema = "JHSYS")]
    [DataContract]
    public class UserInfo
    {
        /// <summary>
        /// 用户編號
        /// </summary>
        [Key]
        [Column("USER_ID")]
        [DataMember]
        public int UserID { get; set; }

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

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

        /// <summary>
        /// 部門編號
        /// </summary>
        [Column("DEPT_ID")]
        [DataMember]
        [Required]
        [Display(Name = "部門編號")]
        public int DeptID { get; set; }

        /// <summary>
        /// 廠別編號
        /// </summary>
        [Column("FACTORY_ID")]
        [DataMember]
        [Display(Name = "廠別編號")]
        public int FactoryID { get; set; }

        /// <summary>
        /// 登入帳號
        /// </summary>
        [Column("LOGIN_NO")]
        [DataMember]
        [Display(Name = "登入帳號")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(20, ErrorMessage = "{0},不能大于{1}")]
        public string LoginNo { get; set; }

        /// <summary>
        /// 登入密碼
        /// </summary>
        [Column("LOGIN_PASSWORD")]
        [DataMember]
        [Display(Name = "登入密碼")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(100, ErrorMessage = "{0},不能大于{1}")]
        public string LoginPassword { get; set; }

        /// <summary>
        /// 郵件地址
        /// </summary>
        [Column("USER_EMAIL")]
        [DataMember]
        [Display(Name = "郵件地址")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(50, ErrorMessage = "{0},不能大于{1}")]
        public string UserEMail { get; set; }

        /// <summary>
        /// 手機號碼
        /// </summary>
        [Column("USER_CELLPHONE")]
        [DataMember]
        [Display(Name = "手機號碼")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(20, ErrorMessage = "{0},不能大于{1}")]
        public string UserCellPhone { get; set; }

        /// <summary>
        /// 用戶狀態
        /// </summary>
        [Column("USER_STATUSID")]
        [Display(Name = "用戶狀態")]
        [DataMember]
        public EnumUserStatus UserStatusID { 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; }
    }
}