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

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 條碼组件資料檔
    /// </summary>
    [Table("BARCODE_ITEM", Schema = "JHAMES")]
    public class BarcodeItem
    {
        /// <summary>
        /// 條碼組件ID
        /// </summary>
        [Column("BARCODE_ITEM_ID")]
        [DataMember]
        [Display(Name = "條碼組件ID")]
        [Key]
        public int BarcodeItemID { get; set; }
        /// <summary>
        /// 内部條碼ID
        /// </summary>
        [Column("BARCODE_ID")]
        [DataMember]
        [Display(Name = "内部條碼ID")]
        //[Key]
        public int BarcodeID { get; set; }

        /// <summary>
        /// 工單ID
        /// </summary>
        [Column("WIP_ID")]
        [DataMember]
        public int WipID { get; set; }

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

        /// <summary>
        /// 组件代碼
        /// </summary>
        [Column("ITEM_NO")]
        [DataMember]
        [Display(Name = "组件代碼")]
        public string ItemNo { get; set; }

        /// <summary>
        /// 组件條碼
        /// </summary>
        [Column("PART_NO")]
        [DataMember]
        [Display(Name = "组件條碼")]
        public string PartNo { get; set; }

        /// <summary>
        /// 系统狀態
        /// </summary>
        [Column("SYSTYPE")]
        [DataMember]
        public string SysType { get; set; }

        /// <summary>
        /// 组件料號
        /// </summary>
        [Column("KP_ITEM_NO")]
        [DataMember]
        [Display(Name = "组件料號")]
        [StringLength(40, ErrorMessage = "{0},不能大于{1}")]
        public string KpItemNo { get; set; }

        /// <summary>
        /// 建立者
        /// </summary>
        [Column("CREATE_USERID")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "建立者")]
        public int CreateUserID { get; set; } 

        /// <summary>
        /// 建立時間
        /// </summary>
        [Column("CREATE_DATE")]
        [DataMember]
        [Display(Name = "建立時間")]
        public DateTime CreateDate { get; set; } 

        /// <summary>
        /// 修改時間
        /// </summary>
        [Column("UPDATE_DATE")]
        [DataMember]
        [Display(Name = "修改時間")]
        public DateTime UpdateDate { get; set; } 

        /// <summary>
        /// 條碼资料
        /// </summary>
        public virtual BarcodeInfo B { get; set; }

        /// <summary>
        /// 組件资料
        /// </summary>
        public virtual Items I { get; set; }

        /// <summary>
        /// 站別资料
        /// </summary>
        public virtual AMESCoreStudio.WebApi.Models.BAS.Stations S { get; set; }
    }
}