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

#nullable disable

namespace AMESCoreStudio.WebApi.Models.BAS
{
    /// <summary>
    /// 料號流程資料檔
    /// </summary>
    [Table("MATERIAL_FLOW", Schema = "JHAMES")]
    //[DataContract]
    public partial class MaterialFlow
    {
        /// <summary>
        /// 料號流程ID
        /// </summary>
        [Key]
        [Column("MF_ID")]
        [Display(Name = "料號流程ID")]
        [DataMember]
        public int MFID { get; set; }
        /// <summary>
        /// 料號ID or 工程編號
        /// </summary>
        //[Key]
        [Column("ITEM_ID")]
        [Display(Name = "工程編號")]
        [DataMember]
        public int ItemID { get; set; }

        /// <summary>
        /// 流程ID
        /// </summary>
        [Display(Name = "流程")]
        [Column("FLOW_RULE_ID")]
        [DataMember]
        public int FlowRuleID { get; set; }

        /// <summary>
        /// 料號流程優先排序
        /// </summary>
        [Display(Name = "SEQUENCE")]
        [Column("FLOW_SEQ")]
        [DataMember]
        public int FlowSEQ { get; set; }

        /// <summary>
        /// 生產單位
        /// </summary>
        [Required]
        [Column("UNIT_NO")]
        [StringLength(1)]
        [Display(Name = "生產單位")]
        [DataMember]
        public string UnitNo { get; set; }

        /// <summary>
        /// 狀態
        /// </summary>
        [Column("MATERIAL_FLOW_STATUS")]
        [StringLength(1)]
        [Display(Name = "狀態")]
        [DataMember]
        public string MaterialFlowStatus { get; set; }

        /// <summary>
        /// 狀態
        /// </summary>
        [Column("MATERIAL_FLOW_REMARK")]
        [Display(Name = "流程備註")]
        [DataMember]
        public string MaterialFlowRemark { get; set; }


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

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

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

        /// <summary>
        /// 更新日期
        /// </summary>
        [Column("UPDATE_DATE")]
        [DataMember]
        public DateTime UpdateDate { get; set; }


        /// <summary>
        /// 料號主檔
        /// </summary>
        //[ForeignKey("ItemID")]
        public virtual AMESCoreStudio.WebApi.Models.AMES.MaterialItem MaterialItem { get; set;}

        /// <summary>
        /// 流程主檔
        /// </summary>
        //[ForeignKey("ItemID")]
        public virtual FlowRule FlowRule { get; set; }

    }
}