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

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 生產工時報工資料
    /// </summary>
    [Table("WIP_TIMESHEET", Schema = "JHAMES")]
    [DataContract]
    public class WipTimeSheet
    {
        /// <summary>
        /// 生產工時ID
        /// </summary>
        [Key]
        [Column("TIMESHEET_ID")]
        [Required(ErrorMessage = "{0},不能空白")]
        [DataMember]
        public int TimeSheetID { get; set; }

        /// <summary>
        /// 制程代碼
        /// </summary>
        [Column("UNIT_NO")]
        [DataMember]
        [Display(Name = "制程代碼")]
        [Required(ErrorMessage = "{0},不能空白")]
        public string UnitNO { get; set; }

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

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

        /// <summary>
        /// 正背面
        /// </summary>
        [Column("SIDE")]
        [DataMember]
        [Display(Name = "正背面")]
        [Required(ErrorMessage = "{0},不能空白")]
        public string Side { get; set; }

        /// <summary>
        /// 工單號碼
        /// </summary>
        [Column("WIP_NO")]
        [DataMember]
        [Display(Name = "工單號碼")]
        [Required(ErrorMessage = "{0},不能空白")]
        public string WipNO { get; set; }

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

        /// <summary>
        /// 開工時間
        /// </summary>
        [Column("OPEN_TIME")]
        [DataMember]
        [Display(Name = "開工時間")]
        [Required(ErrorMessage = "{0},不能空白")]
        public DateTime OpenTime { get; set; }

        /// <summary>
        /// 投入站採集傳感器
        /// </summary>
        [Column("INPUT_SENSOR_ID")]
        [DataMember]
        [Display(Name = "投入站採集傳感器")]
        public string InputSensorID { get; set; }

        /// <summary>
        /// 產出站採集傳感器
        /// </summary>
        [Column("OUTPUT_SENSOR_ID")]
        [DataMember]
        [Display(Name = "產出站採集傳感器")]
        public string OutputSensorID { get; set; }

        /// <summary>
        /// 生產數量
        /// </summary>
        [Column("PRODUCTION_QTY")]
        [DataMember]
        [Display(Name = "生產數量")]
        public int ProductionQty { get; set; }

        /// <summary>
        /// 總工時
        /// </summary>
        [Column("TOTAL_CT")]
        [DataMember]
        [Display(Name = "總工時")]
        public double TotalCT { get; set; }

        /// <summary>
        /// 完工時間
        /// </summary>
        [Column("CLOSE_TIME")]
        [DataMember]
        [Display(Name = "完工時間")]
        public DateTime CloseTime { get; set; }

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

        /// <summary>
        /// 工程編號
        /// </summary>
        [Column("ENG_SR")]
        [DataMember]
        [Display(Name = "工程編號")]
        public string EngSr { get; set; }

        /// <summary>
        /// 組合機種數量
        /// </summary>
        [Column("MULTIPLE_BORDCOUNT")]
        [DataMember]
        [Display(Name = "組合機種數量")]
        public int MultipleBordCount { get; set; }

        /// <summary>
        /// 扣除時間(Min)
        /// </summary>
        [Column("DEDUCTION_TIME")]
        [DataMember]
        [Display(Name = "扣除時間(Min)")]
        public int DeductionTime { get; set; }

        /// <summary>
        /// 建立者
        /// </summary>
        [Column("CREATE_USERID")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "建立者")]
        public int CreateUserID { get; set; }

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

        /// <summary>
        /// 修改者
        /// </summary>
        [Column("UPDATE_USERID")]
        [DataMember]
        [Required(ErrorMessage = "{0},不能空白")]
        [Display(Name = "修改者")]
        public int UpdateUserID { get; set; }

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

    }
}