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

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 機種C/T資料表
    /// </summary>
    [Table("CYCLE_TIME", Schema = "JHAMES")]
    public class CycleTime
    {
        /// <summary>
        /// 料號 or 工程編號
        /// </summary>
        [Column("ITEM_NO")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "工程編號")]
        [StringLength(30, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string ItemNo { get; set; }

        /// <summary>
        /// 每個產出時間
        /// </summary>
        [Column("CT1")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "每個產出時間")]
        public decimal CT1 { get; set; }

        /// <summary>
        /// 每分鐘產出個數
        /// </summary>
        [Column("CT2")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "每分鐘產出個數")]
        public decimal CT2 { get; set; } = 0;

        /// <summary>
        /// 線別ID
        /// </summary>
        [Column("LINE_ID")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "線別ID")]
        [DataMember]
        public int LineID { get; set; }

        /// <summary>
        /// 生產單位
        /// </summary>
        [Column("SECTION_NO")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "生產單位")]
        public string SectionNo { get; set; }

        /// <summary>
        /// 首件產出時間
        /// </summary>
        [Column("FIRST_TIME")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "首件產出時間")]
        public decimal FirstTime { get; set; }

        /// <summary>
        /// 良品產出時間
        /// </summary>
        [Column("PASS_TIME")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "良品產出時間")]
        public decimal PassTime { get; set; }

        /// <summary>
        /// 作業人數
        /// </summary>
        [Column("OP_CNT")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "作業人數")]
        public decimal OPCnt { get; set; }

        /// <summary>
        /// 日產能
        /// </summary>
        [Column("PRO_CNT")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "日產能")]
        public decimal PROCnt { get; set; }

        /// <summary>
        /// 月產出
        /// </summary>
        [Column("MOH_UNIT")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "月產出")]
        public decimal MOHUnit { get; set; }

        /// <summary>
        /// 週產出
        /// </summary>
        [Column("WI_UNIT")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "週產出")]
        public decimal WIUnit { get; set; }

        /// <summary>
        /// 備註
        /// </summary>
        [Column("MEMO")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "備註")]
        [StringLength(100, ErrorMessage = "{0},不能大于{1}")]
        [DataMember]
        public string Memo { get; set; }

        /// <summary>
        /// 建立者
        /// </summary>
        [Column("CREATE_USERID")]
        [DataMember]
        [Display(Name = "建立者")]
        public decimal 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 AMESCoreStudio.WebApi.Models.BAS.LineInfo Line { get; set; }

        /// <summary>
        /// 製程資料
        /// </summary>
        public virtual AMESCoreStudio.WebApi.Models.BAS.FactoryUnit Unit { get; set; }
    }
}