using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;
using AMESCoreStudio.WebApi.Models.SYS;
using AMESCoreStudio.WebApi.Models.BAS;

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 報廢轉出資料檔
    /// </summary>
    [Table("BARCODE_QNG_INFO", Schema = "JHAMES")]
    [DataContract]
    public class BarcodeQngInfo
    {
        /// <summary>
        /// 報廢轉出序號ID
        /// </summary>
        [Key]
        [DataMember]
        [Display(Name = "報廢轉出序號ID")]  
        [Column("QNG_ID")]
        public int QngID { get; set; }

        /// <summary>
        /// 條碼ID
        /// </summary>
        [DataMember]
        [Display(Name = "條碼ID")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("BARCODE_ID")]
        public int BarcodeID { get; set; }

        /// <summary>
        /// 工單ID
        /// </summary>
        [DataMember]
        [Display(Name = "工單ID")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("WIP_ID")]
        public int WipID { get; set; }

        /// <summary>
        /// 流程站別ID
        /// </summary>
        [DataMember]
        [Display(Name = "流程站別ID")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("STATION_ID")]
        public int StationID { get; set; }

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

        /// <summary>
        /// 責任部門ID
        /// </summary>
        [DataMember]
        [Display(Name = "責任部門ID")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("DEPT_ID")]
        public int DeptID { get; set; }

        /// <summary>
        /// 作業人員ID
        /// </summary>
        [DataMember]
        [Display(Name = "作業人員ID")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("OPERATOR_ID")]
        public int OperatorID { get; set; }

        /// <summary>
        /// 作業時間
        /// </summary>
        [Required]
        [Display(Name = "作業時間")]
        [Column("SCRAP_TIME")]
        [DataMember]
        public DateTime ScrapTime { get; set; } = DateTime.Now;

        /// <summary>
        /// 作業原因
        /// </summary>
        [Required]
        [DataMember]
        [Display(Name = "作業原因")]
        [Column("NG_REASON")]
        [StringLength(120)]
        public string NGReason { get; set; }


        /// <summary>
        /// 根本原因預防處理
        /// </summary>
        [DataMember]
        [Display(Name = "根本原因預防處理")]
        [Column("NGREASON_PRTREATMENT")]
        [StringLength(120)]
        public string NGReasonPrtreatment { get; set; }

        /// <summary>
        /// 預防措施
        /// </summary>
        [DataMember]
        [Display(Name = "預防措施")]
        [Column("PRECAUTION")]
        [StringLength(120)]
        public string Precaution { get; set; }

        /// <summary>
        /// 預防處理
        /// </summary>
        [DataMember]
        [Display(Name = "預防處理")]
        [Column("PREVENTIVE_TREATMENT")]
        [StringLength(120)]
        public string PreventiveTreatment { get; set; }

        /// <summary>
        /// 流程狀態
        /// </summary>
        [DataMember]
        [Display(Name = "流程狀態")]
        [Column("RULE_STATUS")]
        [StringLength(2)]
        public string RuleStatus { get; set; }

        /// <summary>
        /// IPQA UserID
        /// </summary>
        [Column("IPQA_ID")]
        [Display(Name = "IPQA")]
        [Required]
        [DataMember]
        public int IPQAID { get; set; } = 0;

        /// <summary>
        /// PE UserID
        /// </summary>
        [Column("PE_ID")]
        [Display(Name = "PE")]
        [Required]
        [DataMember]
        public int PEID { get; set; } = 0;

        /// <summary>
        /// 主管ID
        /// </summary>
        [Column("MANGER_ID")]
        [Display(Name = "主管ID")]
        [Required]
        [DataMember]
        public int ManagerID { get; set; } = 0;

        /// <summary>
        /// 建立UserID
        /// </summary>
        [Column("CREATE_USERID")]
        [Required]
        [DataMember]
        public int CreateUserID { get; set; } = 0;

        /// <summary>
        /// 建立日期
        /// </summary>
        [Required]
        [Column("CREATE_DATE")]
        [DataMember]
        public DateTime CreateDate { get; set; } = DateTime.Now;

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

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