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


namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 設備資料檔
    /// </summary>

    [Table("OUTFIT_INFO", Schema = "JHAMES")]
    public partial class OutfitInfo
    {
        /// <summary>
        /// 治具ID
        /// </summary>
        [Key]
        [Column("OUTFIT_ID")]
        [DataMember]
        [Required]
        [Display(Name = "治具")]
        public int OutfitID { get; set; }

        /// <summary>
        /// 品名ID
        /// </summary>
        [Column("COMMODITY_ID")]
        [DataMember]
        [Required]
        [Display(Name = "設備種類")]
        public int CommodityID { get; set; }

        /// <summary>
        /// 種類ID
        /// </summary>
        [Column("VARIETY_ID")]
        [DataMember]
        [Required]
        [Display(Name = "種類規格")]
        public int VarietyID { get; set; }

        /// <summary>
        /// 設備編碼
        /// </summary>
        [Column("OUTFIT_NO")]
        [StringLength(15)]
        [DataMember]
        [Required]
        [Display(Name = "設備編碼")]
        public string OutfitNo { get; set; }

        /// <summary>
        /// 狀態
        /// </summary>
        [Column("STATUS_NO")]
        [StringLength(2)]
        [DataMember]
        [Required]
        [Display(Name = "設備狀態")]
        public string StatusNo { get; set; }

        /// <summary>
        /// 使用狀態
        /// </summary>
        [Column("USE_STATUS_NO")]
        [StringLength(2)]
        [DataMember]
        [Required]
        [Display(Name = "設備狀態")]
        public string UseStatusNo { get; set; }

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

        /// <summary>
        /// 購置日期
        /// </summary>
        [Column("BUY_DAY")]
        [DataMember]
        [Display(Name = "購置日期")]
        public DateTime? BuyDay { get; set; }

        /// <summary>
        /// 預計歸還日期
        /// </summary>
        [Column("SCHE_RETURN_DAY")]
        [DataMember]
        [Display(Name = "預計歸還日期")]
        public DateTime? ScheReturnDay { get; set; }

        /// <summary>
        /// 當前保管人
        /// </summary>
        [Column("CUSTODIAN")]
        [DataMember]
        [Required]
        [Display(Name = "當前保管人")]
        public int Custondian { get; set; } 


        /// <summary>
        /// 區代碼
        /// </summary>
        [Column("AREA_NO")]
        [StringLength(50)]
        [DataMember]
        [Display(Name = "區代碼")]
        public string AreaNo { get; set; }



        /// <summary>
        /// 層別代碼
        /// </summary>
        [Column("LEVEL_NO")]
        [StringLength(12)]
        [DataMember]
        [Display(Name = "層別代碼")]
        public string LevelNo { get; set; }


        /// <summary>
        /// 位置代碼
        /// </summary>
        [Column("SITE_NO")]
        [StringLength(12)]
        [DataMember]
        [Display(Name = "位置代碼")]
        public string SiteNo { get; set; }


        /// <summary>
        /// 儲位編碼
        /// </summary>
        [Column("LOCATION_NO")]
        [StringLength(50)]
        [DataMember]
        [Display(Name = "儲位")]
        public string LocationNo { get; set; }


        /// <summary>
        /// 料件料號;財產名稱
        /// </summary>
        [Column("PART_NO")]
        [StringLength(50)]
        [DataMember]
        [Display(Name = "財產名稱")]
        public string PartNo { get; set; }

        /// <summary>
        /// 標識(0-設備;1-料件;2-儀器)
        /// </summary>
        [Column("TYPE_FLAG")]
        [DataMember]
        [Required]
        [Display(Name = "標識")]
        public int TypeFlag { get; set; } = 0;

        /// <summary>
        /// 廠別代碼
        /// </summary>
        [Column("OUTFIT_FACTORY_NO")]
        [StringLength(2)]
        [DataMember]
        [Display(Name = "廠別")]
        public string OutfitFactoryNo { get; set; } = "NA";

        /// <summary>
        /// 購置日期
        /// </summary>
        [Column("PURCHASE_DATE")]
        [DataMember]
        [Display(Name = "購置日期")]
        public DateTime? PuchaseDate { get; set; } = System.DateTime.Now;

        /// <summary>
        /// 單價
        /// </summary>
        [Column("UNIT_PRICE")]
        [DataMember]
        [Display(Name = "單價")]
        public int? UnitPrice { get; set; } = 0;

        /// <summary>
        /// 有效日期
        /// </summary>
        [Column("QUALITY_DATE")]
        [DataMember]
        [Display(Name = "有效日期")]
        public DateTime? QualityDate { get; set; }

        /// <summary>
        /// 廠商ID
        /// </summary>
        [Column("VENDOR_ID")]
        [DataMember]
        [Display(Name = "廠商")]
        public int? VendorID { get; set; }

        /// <summary>
        /// OA單號/管理編號
        /// </summary>
        [Column("OA_NO")]
        [StringLength(30)]
        [DataMember]
        [Required]
        [Display(Name = "管理編號")]
        public string QANo { get; set; }

        /// <summary>
        /// 庫存數量
        /// </summary>
        [Column("STOCK_QTY")]
        [DataMember]
        [Required]
        [Display(Name = "庫存數量")]
        public int StockQty { get; set; } = 1;

        /// <summary>
        /// 單位
        /// </summary>
        [Column("UNIT")]
        [StringLength(5)]
        [DataMember]
        [Display(Name = "單位")]
        public string Unit { get; set; }

        /// <summary>
        /// 特殊種類(X:錫膏; H-紅膠儀器編號)
        /// </summary>
        [Column("LOT_NO")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "特殊種類")]
        public string LotNo { get; set; }

        /// <summary>
        /// 鋼網連板數量
        /// </summary>
        [Column("BOARDS")]
        [DataMember]
        [Display(Name = "鋼網連板數量")]
        public int? Boards { get; set; }

        /// <summary>
        /// 治具使用次數
        /// </summary>
        [Column("USE_TIMES")]
        [DataMember]
        [Required]
        [Display(Name = "治具使用次數")]
        public int UseTimes { get; set; } = 0;

        /// <summary>
        /// 治具累計使用次數
        /// </summary>
        [Column("TOTAL_TIMES")]
        [DataMember]
        [Required]
        [Display(Name = "治具累計使用次數")]
        public int TotalTimes { get; set; } = 0;

        /// <summary>
        /// 型號
        /// </summary>
        [Column("MODEL_NO")]
        [StringLength(50)]
        [DataMember]
        [Display(Name = "型號")]
        public string ModelNo { get; set; }

        /// <summary>
        /// 內部條碼
        /// </summary>
        [Column("BARCODE_NO")]
        [StringLength(50)]
        [DataMember]
        [Display(Name = "內部條碼")]
        public string BarcodeNo { get; set; }


        /// <summary>
        /// 校驗方式
        /// </summary>
        [Column("TYPE_ID")]
        [DataMember]
        [Display(Name = "校驗方式")]
        public int? TypeID { get; set; }

        /// <summary>
        /// 檢驗週期ID
        /// </summary>
        [Column("CYCLE_ID")]
        [DataMember]
        [Display(Name = "檢驗週期")]
        public int? CycleID { get; set; }

        /// <summary>
        /// 外校費用
        /// </summary>
        [Column("FOREIGN_EXPENSES")]
        [StringLength(10)]
        [DataMember]
        [Display(Name = "外校費用")]
        public string ForeignExpenses { get; set; }


        /// <summary>
        /// 校驗日期
        /// </summary>
        [Column("CHECK_DATE")]
        [DataMember]
        [Display(Name = "校驗日期")]
        public DateTime? CheckDate { get; set; }


        /// <summary>
        /// 下次校驗日期
        /// </summary>
        [Column("NEXT_DATE")]
        [DataMember]
        [Display(Name = "下次校驗日期")]
        public DateTime? NextDate { get; set; }


        /// <summary>
        /// 是否為母儀(Y/N)
        /// </summary>
        [Column("MASTER")]
        [StringLength(2)]
        [DataMember]
        [Display(Name = "是否為母儀")]
        public string Master { get; set; }

        /// <summary>
        /// 當前保管人
        /// </summary>
        [Column("CUSTODIAN_NAME")]
        [StringLength(50)]
        [DataMember]
        [Display(Name = "保管人")]
        public string CustodianName { get; set; }
        /// <summary>
        /// 當前保管人部門
        /// </summary>
        [Column("CUSTODIAN_DEPT")]
        [StringLength(50)]
        [DataMember]
        [Display(Name = "保管部門")]
        public string CustodianDept { 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>
        [Column("USE_STATUS_REMARK")]
        [StringLength(200)]
        [Display(Name = "變更狀態備註(啟用/停用)")]
        public string UseStatusRemark { get; set; }


    }
}