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


namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 料號KP資訊資料檔
    /// </summary>
    [Table("MATERIAL_KP", Schema = "JHAMES")]
    //[DataContract]
    public partial class MaterialKp
    {
        /// <summary>
        /// 料號KP_ID
        /// </summary>
        [Key]
        [Column("MATERIAL_KP_ID")]
        [DataMember]
         [Required]
        public int MaterialKpID { get; set; }

        /// <summary>
        /// 料號ID or 工程編號
        /// </summary>
        [Column("ITEM_ID")]
        [Display(Name = "工程編號")]
        [DataMember]
        [Required]
        public int ItemID { get; set; }

        /// <summary>
        /// KP料號名稱
        /// </summary>
        [Required]
        [Column("KP_NAME")]
        [Display(Name = "組件料號名稱")]
        [StringLength(25)]
        [DataMember]
        public string KpName { get; set; }

        /// <summary>
        /// KP料號NO
        /// </summary>
        [Required]
        [Column("KP_NO")]
        [Display(Name = "組件料號代碼")]
        [StringLength(25)]
        [DataMember]
        public string KpNo { get; set; }

        /// <summary>
        /// 順序
        /// </summary>
        [Column("KP_SEQ")]
        [Display(Name = "順序")]
        [DataMember]
        public int KpSeq { get; set; }

        /// <summary>
        /// 前置碼
        /// </summary>
        [Column("TITLE")]
        [Display(Name = "前置碼")]
        [StringLength(10)]
        [DataMember]
        public string Title { get; set; }

        /// <summary>
        /// 長度
        /// </summary>
        [Display(Name = "長度")]
        [Column("LENGTH")]
        [DataMember]
        public int? Length { get; set; }

        /// <summary>
        /// 站(前段)
        /// </summary>
        [Required]
        [Column("STATION_TYPE")]
        [Display(Name = "製程單位")]
        [StringLength(25)]
        [DataMember]
        public string StationType { get; set; }

        /// <summary>
        /// 是否重複
        /// </summary>
        [Column("IS_REPEAT")]
        [Display(Name = "是否重複")]
        [StringLength(25)]
        [DataMember]
        public string IsRepeat { 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;

        /// <summary>
        /// 料號主檔
        /// </summary>
        [ForeignKey("ItemID")]
        public virtual MaterialItem Item { get; set; }

        /// <summary>
        /// 工單機種資料
        /// </summary>
        [ForeignKey("StationType")]
        public virtual AMESCoreStudio.WebApi.Models.BAS.FactoryUnit Unit { get; set; }

        /// 工單機種資料
        /// </summary>
        [ForeignKey("KpNo")]
        public virtual Items Items { get; set; }
    }
}