using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using System.Runtime.Serialization;

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 工單箱號資料檔
    /// </summary>
    [Table("WIP_BOX", Schema = "JHAMES")]
    [Index(nameof(WipID), Name = "WIP_BOX_F1")]
    public partial class WipBox
    {
        /// <summary>
        /// 箱號ID
        /// </summary>
        [DataMember]
        [Display(Name = "箱號ID")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("BOX_ID")]
        public int BoxID { get; set; }

        /// <summary>
        /// 箱號
        /// </summary>
        [Key]
        [DataMember]
        [Display(Name = "箱號")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("BOX_NO")]
        [StringLength(30)]
        public string BoxNo { get; set; }

        /// <summary>
        /// 工單ID
        /// </summary>
        [DataMember]
        [Display(Name = "工單ID")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("WIP_ID")]
        public int WipID { get; set; }

        /// <summary>
        /// 單箱數量
        /// </summary>
        [DataMember]
        [Display(Name = "單箱數量")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("BOX_CNT")]
        public int BoxCnt { get; set; } = 0;

        /// <summary>
        /// 箱號狀態(0 = 停用 ; 1= 使用中)
        /// </summary>
        [DataMember]
        [Display(Name = "箱號狀態")]
        [Column("BOX_STATUS")]
        public int? BoxStatus { get; set; } = 1;

        /// <summary>
        /// 重量
        /// </summary>
        [DataMember]
        [Display(Name = "重量")]
        [Column("WEIGHT_G")]
        public decimal WeightG { get; set; } = 0.0M;

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

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

        /// <summary>
        /// 更新UserID
        /// </summary>
        [Column("UPDATE_USERID")]
        [DataMember]
        public int UpdateUserID { get; set; } = 0;

        /// <summary>
        /// 更新日期
        /// </summary>
        [Column("UPDATE_DATE")]
        [DataMember]
        public DateTime? UpdateDate { get; set; } = DateTime.Now;

    }
}