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

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// MAC資料表
    /// </summary>
    [Table("C_PARAMETER_INI", Schema = "JHAMES")]
    public class MACInfo
    {
        /// <summary>
        /// 机种
        /// </summary>
        [Key]
        [Column("CLASS")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "机种")]
        [StringLength(20, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string Class { get; set; }

        /// <summary>
        /// 單板MAC數
        /// </summary>
        [Column("QTY")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "單板MAC數")]
        public int Qty { get; set; }

        /// <summary>
        /// 最大值
        /// </summary>
        [Column("MAX")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "最大值")]
        [StringLength(10, ErrorMessage = "{0},不能大于{1}")]
        public string Max { get; set; }

        /// <summary>
        /// 最小值
        /// </summary>
        [Column("MIN")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "最小值")]
        [StringLength(10, ErrorMessage = "{0},不能大于{1}")]
        public string Min { get; set; }

        /// <summary>
        /// 當前值
        /// </summary>
        [Column("VALUE")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "當前值")]
        [StringLength(10, ErrorMessage = "{0},不能大于{1}")]
        public string Value { get; set; }

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

        /// <summary>
        /// 狀態
        /// </summary>
        [Column("STATUS")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "狀態")]
        public int Status { get; set; } = 1;

        /// <summary>
        /// 組代碼
        /// </summary>
        [Key]
        [Column("CLASS_GROUP")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "組代碼")]
        [StringLength(2, ErrorMessage = "{0},不能大于{1}")]
        public string ClassGroup { get; set; }

        /// <summary>
        /// 安全量
        /// </summary>
        [Column("SAFE_QTY")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "安全量")]
        public int SafeQty { get; set; } = 0;

        /// <summary>
        /// 實際量
        /// </summary>
        [Column("FACT_QTY")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "實際量")]
        public int FactQty { get; set; } = 0;

        /// <summary>
        /// 客戶標記
        /// </summary>
        [Column("CUSTOMER_FLAG")]
        [DataMember]
        [Display(Name = "客戶標記")]
        [StringLength(30, ErrorMessage = "{0},不能大于{1}")]
        public string CustomerFlag { get; set; }


        /// <summary>
        /// 列印方式
        /// </summary>
        [Column("PRINT_TYPE")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "列印方式")]
        [StringLength(2, ErrorMessage = "{0},不能大于{1}")]
        public string PrintType { get; set; } = "AL";

        /// <summary>
        /// 標籤描述
        /// </summary>
        [Column("LABEL_DESC")]
        [DataMember]
        [Display(Name = "標籤描述")]
        [StringLength(100, ErrorMessage = "{0},不能大于{1}")]
        public string LabelDesc { get; set; }

        /// <summary>
        /// 建立者
        /// </summary>
        [Column("CREATE_USERID")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "建立者")]
        public decimal CreateUserID { get; set; } = 0;

        /// <summary>
        /// 建立時間
        /// </summary>
        [Column("CREATE_DATE")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "建立時間")]
        public DateTime CreateDate { get; set; } = DateTime.Now;

        /// <summary>
        /// 更新者
        /// </summary>
        [Column("UPDATE_USERID")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "建立者")]
        public decimal UpdateUserID { get; set; } = 0;

        /// <summary>
        /// 修改時間
        /// </summary>
        [Column("UPDATE_DATE")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "修改時間")]
        public DateTime UpdateDate { get; set; } = DateTime.Now;
    }
}