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

#nullable disable

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 設備種類資料檔
    /// </summary>
    [Table("OUTFIT_COMMODITY_INFO", Schema = "JHAMES")]
    public partial class OutfitCommodityInfo
    {
        /// <summary>
        /// 設備種類ID
        /// </summary>
        [Key]
        [Column("COMMODITY_ID")]
        [DataMember]
        [Required]
        public int CommodityID { get; set; }

        /// <summary>
        /// 種類代碼
        /// </summary>
        [Column("COMMODITY_NO")]
        [StringLength(3)]
        [DataMember]
        [Required]
        [Display(Name = "種類代碼")]
        public string CommodityNo { get; set; }


        /// <summary>
        /// 種類名稱
        /// </summary>
        [Column("COMMODITY_NAME")]
        [StringLength(20)]
        [DataMember]
        [Required]
        [Display(Name = "種類名稱")]
        public string CommodityName { get; set; }

        /// <summary>
        /// 種類英文名稱
        /// </summary>
        [Column("COMMODITY_EN")]
        [StringLength(100)]
        [DataMember]
        [Required]
        [Display(Name = "種類英文名稱")]
        public string CommodityEn { get; set; }

        /// <summary>
        /// 保養預警提前天數
        /// </summary>
        [Column("ALERT_FORE_DAYS")]//保養預警提前天數
        [DataMember]
        [Required]
        [Display(Name = "保養預警提前天數")]
        public int AlertForeDays { get; set; } = 0;

        /// <summary>
        /// 累計天數
        /// </summary>
        [Column("USE_LIMIT_DAYS")]//累計天數
        [DataMember]
        // [Required] yiru modify 2022/11/14
        [Display(Name = "累計天數")]
        public int UseLimitDays { get; set; } = 0;

        /// <summary>
        /// 設備種類
        /// 0:設備/料件; 2:耗材
        /// </summary>
        [Column("TYPE_FLAG")]
        [DataMember]
        [Required]
        [Display(Name = "種類歸屬")]
        public int TypeFlag { get; set; } = 0;

        /// <summary>
        /// 是否為存儲類設備)
        /// </summary>
        [Column("STORAGE_FLAG")]
        [StringLength(1)]
        [DataMember]
        [Required]
        [Display(Name = "是否為存儲類設備")]
        public string StorageFlag { get; set; } = "N";

        /// <summary>
        /// 狀態(A-可用;S-停用)
        /// </summary>
        [Column("STATUS")]
        [StringLength(1)]
        [DataMember]
        [Required]
        [Display(Name = "狀態")]
        public string Status { get; set; } = "A";

        /// <summary>
        /// 特殊種類
        /// (X-錫膏; H-紅膠;G-鋼網)
        /// </summary>
        [Column("SMT_FLAG")]
        [StringLength(1)]
        [DataMember]
        [Display(Name = "特殊種類")]
        public string SmtFlag { get; set; }

        /// <summary>
        /// 創建者ID
        /// </summary>
        [Column("CREATE_USERID")]
        [DataMember]
        public int CreateUserID { get; set; } = 0;

        /// <summary>
        /// 創建日期
        /// </summary>
        [Column("CREATE_DATE")]
        [DataMember]
        public DateTime CreateDate { get; set; } = System.DateTime.Now;

        /// <summary>
        /// 更新者ID
        /// </summary>
        [Column("UPDATE_USERID")]
        [DataMember]
        public int UpdateUserID { get; set; } = 0;

        /// <summary>
        /// 更新日期
        /// </summary>
        [Column("UPDATE_DATE", TypeName = "DATE")]
        [DataMember]
        public DateTime UpdateDate { get; set; } = System.DateTime.Now;
    }
}