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

namespace AMESCoreStudio.WebApi.Models.BAS
{
    /// <summary>
    /// 站别資料
    /// </summary>
    [Table("STATIONS", Schema = "JHAMES")]
    //[DataContract]
    public class Stations
    {
        /// <summary>
        /// 站别序號
        /// </summary>
        [Key]
        [Column("STATION_ID")]
        [Display(Name = "工作站ID")]
        [DataMember]
        public int StationID { get; set; }

        /// <summary>
        /// 工作站名稱
        /// </summary>
        [Column("STATION_NAME")]
        [DataMember]
        [Display(Name = "站别名稱")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(50, ErrorMessage = "{0},不能大于{1}")]
        public string StationName { get; set; }

        /// <summary>
        /// 工作站名稱代碼
        /// </summary>
        [Column("STATION_NAME_ST")]
        [DataMember]
        [Display(Name = "站别簡稱")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(50, ErrorMessage = "{0},不能大于{1}")]
        public string StationNameSt { get; set; }

        /// <summary>
        /// 工作站類別
        /// </summary>
        [Column("TYPE_NO")]
        [Display(Name = "類別代碼")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(1, ErrorMessage = "{0},不能大于{1}")]
        public String TypeNo { get; set; }

        /// <summary>
        /// 系統資料
        /// </summary>
        [Column("SYS_TYPE")]
        [DataMember]
        [Display(Name = "系統資料")]
        public string SysType { get; set; }

        /// <summary>
        /// 站別WIP數量下限
        /// </summary>
        [Column("WIP_CNT")]
        [DataMember]
        [Display(Name = "站別WIP數量下限")]
        public int WipCnt { get; set; }

        /// <summary>
        /// 站別良率下限
        /// </summary>
        [Column("YIELD_RATE")]
        [DataMember]
        [Display(Name = "站別良率下限")]
        public int YieldRate { get; set; }

        /// <summary>
        /// 站別WIP下限
        /// </summary>
        [Column("WIP_CNT_MIN")]
        [DataMember]
        [Display(Name = "站別WIP下限")]
        public int WipCntMin { get; set; }


        /// <summary>
        /// 站別測試類別代碼
        /// </summary>
        [Column("TEST_TYPE")]
        [DataMember]
        [Display(Name = "測試類別")]
        public string TestType { get; set; }

        /// <summary>
        /// 達成率指標
        /// </summary>
        [Column("PERFORMANCE_RATE")]
        //[Display(Name = "達成率指標")]
        public int PerfopmanceRate { get; set; }

        /// <summary>
        /// 産量指標
        /// </summary>
        [Column("PRODUCT_GOAL")]
        //[Display(Name = "産量指標")]
        public int ProductGoal { get; set; }

        /// <summary>
        /// 誤判指標
        /// </summary>
        [Column("N01_GOAL")]
        //[Display(Name = "誤判指標")]
        public int N01Goal { get; set; }

        /// <summary>
        /// 不良率(DPPM)指標
        /// </summary>
        [Column("YIELD_DPPM")]
        //[Display(Name = "不良率(DPPM)指標")]
        public int YieldDPPM { get; set; }

        /// <summary>
        /// 生産單位別
        /// </summary>
        [Column("UNIT_NO")]
        [Display(Name = "歸屬製程")]
        [Required(ErrorMessage = "{0},不能空白")]
        [StringLength(1, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string UnitNo { get; set; }

        /// <summary>
        /// 標準作業時間(秒)
        /// </summary>
        [Column("WORK_TIME")]
        [DataMember]
        [Display(Name = "標準作業時間(秒)")]
        public int WorkTime { get; set; }

        /// <summary>
        /// 工廠狀態
        /// </summary>
        [Column("NEW_CNO")]
        [DataMember]
        [Display(Name = "編箱號表示")]
        public int NewCno { get; set; }

        /// <summary>
        /// 站別實體位置
        /// </summary>
        [Column("POS_NO")]
        public string PosNo { get; set; }


        /// <summary>
        /// 站別區位
        /// </summary>
        [Column("SECTION_NO")]
        public string SectionNo { get; set; }

        /// <summary>
        /// 狀態
        /// </summary>
        [Column("STATUS_NO")]
        public String StatusNo { get; set; }

        /// <summary>
        /// 生產單位资料
        /// </summary>
        public virtual AMESCoreStudio.WebApi.Models.BAS.FactoryUnit Unit { get; set; }

    }
}