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("WIP_SYSTEM", Schema = "JHAMES")]
    [DataContract]

    public partial class WipSystem
    {
        /// <summary>
        /// 工單號碼
        /// </summary>
        [Key]
        [Column("WIP_NO")]
        [StringLength(30)]
        [DataMember]
        public string WipNo { get; set; }

        /// <summary>
        /// 料號 or 
        /// </summary>
        [Required]
        [Column("ITEM_NO")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "工程編號")]
        public string ItemNo { get; set; }

        /// <summary>
        /// 工程負責人員
        /// </summary>
        [DataMember]
        [Column("ENGINEER")]
        [Display(Name = "工程負責人員")]
        [StringLength(20)]
        public string Engineer { get; set; }

        /// <summary>
        /// POWER_MODE_TYPE
        /// </summary>
        [DataMember]
        [Display(Name = "POWER MODE型態")]
        [Column("POWER_MODE_TYPE")]
        public int PowerModeType { get; set; } = 1;

        /// <summary>
        /// PLM出貨P_M設定
        /// </summary>
        [Column("POWER_MODE")]
        [StringLength(20)]
        [Display(Name = "Power Mode")]
        [DataMember]
        public string PowerMode { get; set; }

        /// <summary>
        /// 燒機比率
        /// </summary>
        [Column("BI_RATIO")]
        [DataMember]
        [Display(Name = "燒機比率")]
        public decimal? BiRatio { get; set; }

        /// <summary>
        /// 燒機溫度
        /// </summary>
        [Column("BI_TEMPERATURE")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "燒機溫度")]
        public string BiTemperature { get; set; }

        /// <summary>
        /// 燒機時間
        /// </summary>
        [Column("BI_TIME")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "燒機時間")]
        public string BiTime { get; set; }


        /// <summary>
        /// 燒機軟體
        /// </summary>
        [Column("BI_OS")]
        [DataMember]
        [Display(Name = " 燒機軟體")]
        public string BI_OS { get; set; }

        /// <summary>
        /// 燒機備註
        /// </summary>
        [Column("BI_MEMO")]
        [StringLength(300)]
        [DataMember]
        [Display(Name = "燒機備註")]
        public string BiMemo { get; set; }

        /// <summary>
        /// BIOS_Type
        /// </summary>
        [DataMember]
        [Display(Name = "BIOS")]
        [Column("BIOS_TYPE")]
        public int BiosType { get; set; } = 1;

        /// <summary>
        /// BIOS
        /// </summary>
        [DataMember]
        [Display(Name = "BIOS")]
        [Column("BIOS")]
        public string Bios { get; set; }

        /// <summary>
        /// BIOS版本
        /// </summary>
        [DataMember]
        [Display(Name = "BIOS版本")]
        [Column("BIOS_VER")]
        public string BiosVer { get; set; }

        /// <summary>
        /// Check Sum
        /// </summary>
        [Column("CHECKSUM")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "Check Sum")]
        public string Checksum { get; set; }

        /// <summary>
        /// CPU頻率
        /// </summary>
        [Column("CPU")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "CPU頻率")]
        public string Cpu { get; set; }

        /// <summary>
        /// RAM
        /// </summary>
        [Column("RAM")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "RAM")]
        public string Ram { get; set; }

        /// <summary>
        /// 是否為精包裝Y/N
        /// </summary>
        [Column("FINE_PACKAGE")]
        [StringLength(2)]
        [DataMember]
        [Display(Name = "是否為精包裝")]
        public string FinePackage { get; set; }

        /// <summary>
        /// EC_Type
        /// </summary>
        [DataMember]
        [Column("EC_TYPE")]
        public int ECType { get; set; } = 1;

        /// <summary>
        /// EC
        /// </summary>
        [Column("EC")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "EC")]
        public string Ec { get; set; }

        /// <summary>
        /// FW_Type
        /// </summary>
        [DataMember]
        [Column("FW_TYPE")]
        public int FWType { get; set; } = 1;

        /// <summary>
        /// Firewall
        /// </summary>
        [Column("FW")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "FW")]
        public string Fw { get; set; }

        /// <summary>
        /// EC_Type
        /// </summary>
        [DataMember]
        [Column("FW1_TYPE")]
        public int FW1Type { get; set; } = 1;

        /// <summary>
        /// Firewall 1
        /// </summary>
        [Column("FW1")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "FW1")]
        public string Fw1 { get; set; }

        /// <summary>
        /// FW2_Type
        /// </summary>
        [DataMember]
        [Column("FW2_TYPE")]
        public int FW2Type { get; set; } = 1;

        /// <summary>
        /// Firewall 2
        /// </summary>
        [Column("FW2")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "FW2")]
        public string Fw2 { get; set; }

        /// <summary>
        /// OS_Type
        /// </summary>
        [DataMember]
        [Column("OS_TYPE")]
        public int OsType { get; set; } = 1;

        /// <summary>
        /// OS版本
        /// </summary>
        [Column("OS_VER")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "出貨OS")]
        public string OsVer { get; set; }

        /// <summary>
        /// DMI燒入
        /// </summary>
        [Column("DMI_BI")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "DMI燒入")]
        public string DmiBi { get; set; }

        /// <summary>
        /// DMI燒入說明
        /// </summary>
        [Column("DMI_BI_MEMO")]
        [StringLength(300)]
        [DataMember]
        [Display(Name = "DMI燒入說明")]
        public string DmiBiMemo { get; set; }

        /// <summary>
        /// 備註
        /// </summary>
        [Column("MEMO")]
        [StringLength(300)]
        [DataMember]
        [Display(Name = "備註")]
        public string Memo { get; set; }

        /// <summary>
        /// JUMPER設定
        /// </summary>
        [Column("JUMPER")]
        [DataMember]
        [Display(Name = "JUMPER設定")]
        public string Jumper { get; set; }

        /// <summary>
        /// 組裝備註
        /// </summary>
        [Column("BAB_MEMO")]
        [StringLength(300)]
        [DataMember]
        [Display(Name = "組裝備註")]
        public string BabMemo { get; set; }

        /// <summary>
        /// 測試備註
        /// </summary>
        [Column("TEST_MEMO")]
        [StringLength(300)]
        [DataMember]
        [Display(Name = "測試備註")]
        public string TestMemo { get; set; }

        /// <summary>
        /// 包裝備註
        /// </summary>
        [Column("PACKING_MEMO")]
        [StringLength(300)]
        [DataMember]
        [Display(Name = "包裝備註")]
        public string PackingMemo { 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>
        /// PowerMode_Desc
        /// </summary>
        [NotMapped]
        [DataMember]
        public string PowerMode_Desc { get; set; }

        /// <summary>
        /// BIOS_Desc
        /// </summary>
        [NotMapped]
        [DataMember]
        public string Bios_Desc { get; set; }

        /// <summary>
        /// EC_Desc
        /// </summary>
        [NotMapped]
        [DataMember]
        public string Ec_Desc { get; set; }

        /// <summary>
        /// FW_Desc
        /// </summary>
        [NotMapped]
        [DataMember]
        public string Fw_Desc { get; set; }

        /// <summary>
        /// FW1_Desc
        /// </summary>
        [NotMapped]
        [DataMember]
        public string Fw1_Desc { get; set; }

        /// <summary>
        /// FW2_Desc
        /// </summary>
        [NotMapped]
        [DataMember]
        public string Fw2_Desc { get; set; }

        /// <summary>
        /// OS_Desc
        /// </summary>
        [NotMapped]
        [DataMember]
        public string OsVer_Desc { get; set; }

        /// <summary>
        /// PE工程師姓名 Engineer
        /// </summary>
        [NotMapped]
        [DataMember]
        public string Engineer_Name { get; set; }
    }
}