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

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 工單機種資料
    /// </summary>
    [Table("WIP_ATT", Schema = "JHAMES")]
    [DataContract]
    public class WipAtt
    {
        /// <summary>
        /// 工單號碼
        /// </summary>
        [Key]
        [Column("WIP_NO")]
        [Required(ErrorMessage = "{0},不能空白")]
        [DataMember]
        public string WipNO { get; set; }

        /// <summary>
        /// 料號 or 工程編號
        /// </summary>
        [Column("ITEM_NO")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "工程編號")]
        public string ItemNO { get; set; }

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

        /// <summary>
        /// 工單性質
        /// </summary>
        [Column("WIP_PROCESS")]
        [DataMember]
        [Display(Name = "工單性質")]
        public string WipProcess { get; set; }

        /// <summary>
        /// 正背面 or SMD投產優先面
        /// </summary>
        [Column("SIDE")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "SMD投產優先面")]
        public int Side { get; set; } = -1;

        /// <summary>
        /// 聯板數
        /// </summary>
        [Column("BOARDS")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "聯板數")]
        public int Boards { get; set; } = 1;

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

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

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

        /// <summary>
        /// 機種 or 機種名稱
        /// </summary>
        [Column("MODEL_NO")]
        [DataMember]
        [Display(Name = "機種名稱")]
        public string ModelNO { get; set; }


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

        /// <summary>
        /// 單位重量
        /// </summary>
        [Column("UNIT_WEIGHT")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "單位重量")]
        public decimal UnitWeight { get; set; } =0;

        /// <summary>
        /// 誤差範圍
        /// </summary>
        [Column("WEIGHT_RANGE")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "誤差範圍")]
        public decimal WeightRange { get; set; } = 0;

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

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

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

        /// <summary>
        /// BOM日期
        /// </summary>
        [Column("BOM_DATE")]
        [DataMember]
        [DataType(DataType.Text), DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]
        [Display(Name = "BOM日期")]
        public DateTime? BomDate { get; set; }

    }
}