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("NG_REPAIR", Schema = "JHAMES")]
    public partial class NgRepair
    {
        /// <summary>
        /// 測試不良ID
        /// </summary>
        [Column("NG_ID", TypeName = "NUMBER")]
        [DataMember]
        [Required]
        public decimal NgID { get; set; }

        /// <summary>
        /// 不良零件ID
        /// </summary>
        [Column("COMPONENT_ID", TypeName = "NUMBER")]
        [DataMember]
        [Required]
        public decimal ComponentID { get; set; }

        /// <summary>
        /// 不良維修ID
        /// </summary>
        [Column("REPAIR_ID", TypeName = "NUMBER")]
        [DataMember]
        [Required]
        [Key]
        public decimal RepairID { get; set; }

        /// <summary>
        /// 是否誤判
        /// </summary>
        [Required]
        [Column("MISSING")]
        [StringLength(1)]
        [DataMember]
        [Display(Name = "是否誤判")]
        public string Missing { get; set; } = "N";

        /// <summary>
        /// 維修代碼
        /// </summary>
        [Required]
        [Column("REPAIR_NO")]
        [StringLength(10)]
        [DataMember]
        [Display(Name = "維修代碼")]
        public string RepairNo { get; set; } = "N/A";

        /// <summary>
        /// 維修說明
        /// </summary>
        [Column("REPAIR_DESC")]
        [StringLength(100)]
        [DataMember]
        [Display(Name = "維修說明")]
        public string RepairDesc { get; set; }

        /// <summary>
        /// 更換組件
        /// </summary>
        [Required]
        [Column("REPLACE")]
        [StringLength(1)]
        [DataMember]
        [Display(Name = "更換組件")]
        public string Replace { get; set; } = "N";

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

        /// <summary>
        /// 維修料號
        /// </summary>
        [Required]
        [Column("PART_NO")]
        [StringLength(30)]
        [DataMember]
        [Display(Name = "維修料號")]
        public string PartNo { get; set; }

        /// <summary>
        /// RMA單號
        /// </summary>
        [Column("RMA_NO")]
        [StringLength(20)]
        [DataMember]
        [Display(Name = "RMA單號")]
        public string RmaNo { get; set; }

        /// <summary>
        /// 維修方式代碼
        /// </summary>
        [Required]
        [Column("REPAIR_TYPE_NO")]
        [StringLength(6)]
        [DataMember]
        [Display(Name = "維修方式代碼")]
        public string RepairTypeNo { get; set; }

        /// <summary>
        /// 責任單位ID
        /// </summary>
        [Column("REPAIR_RESPONSIBLE_ID")]
        [DataMember]
        [Display(Name = "責任單位")]
        public int RepairResponsibleID { get; set; } 

        /// <summary>
        /// 不良類別
        /// </summary>
        [Required]
        [Column("NG_TYPE_NO")]
        [StringLength(6)]
        [DataMember]
        [Display(Name = "不良類別")]
        public string NgTypeNo { 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;
    }
}