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

#nullable disable

namespace AMESCoreStudio.WebApi.Models.AMES
{
    /// <summary>
    /// 錫膏基本資料檔
    /// </summary>
    [Table("SOLDER_PASTE_INFO", Schema = "JHAMES")]
    [DataContract]
    public partial class SolderPasteInfo
    {
        /// <summary>
        /// 錫膏ID
        /// </summary>
        [Key]
        [Column("SOLDER_PASTE_ID")]
        [DataMember]
        public int SolderPasteID { get; set; }

        /// <summary>
        /// 錫膏編號
        /// </summary>
        [Column("SOLDER_PASTE_NO")]
        [StringLength(40)]
        [DataMember]
        [Display(Name = "錫膏編號")]
        public string SolderPasteNo { get; set; }

        /// <summary>
        /// 規格描述
        /// </summary>
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("DESCRIPTION")]
        [StringLength(60)]
        [DataMember]
        [Display(Name = "規格")]
        public string Description { get; set; }

        /// <summary>
        /// 合金
        /// </summary>
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("ALLOY")]
        [DataMember]
        [Display(Name = "合金")]
        public string Alloy { get; set; } = "Sn96.5/Ag3.0/Cu05";

        /// <summary>
        /// 廠商
        /// </summary>
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("VENDOR")]
        [DataMember]
        [Display(Name = "廠商")]
        public string Vendor { get; set; }

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

        /// <summary>
        /// 收貨日期
        /// </summary>
        [DataMember]
        [Display(Name = "收貨日期")]
        [Column("RECEIPT_DATE")]
        [Required(ErrorMessage = "{0},不能空白")]
        [DataType(DataType.Text), DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]

        public DateTime ReceiptDate { get; set; }

        /// <summary>
        /// 製造日期
        /// </summary>
        [DataMember]
        [Display(Name = "製造日期")]
        [Column("MANUFACTORING_DATE")]
        [Required(ErrorMessage = "{0},不能空白")]
        [DataType(DataType.Text), DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]
        public DateTime ManufactoringDate { get; set; }

        /// <summary>
        /// 有效日期
        /// </summary>
        [DataMember]
        [Display(Name = "有效日期")]
        [Column("EFFECTIVE_DATE")]
        [Required(ErrorMessage = "{0},不能空白")]
        [DataType(DataType.Text), DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]
        public DateTime EffectiveDate { get; set; }

        /// <summary>
        /// 狀態( WI=倉庫入冰箱 ; WO=昌庫出冰箱 ; I=產線入冰箱 ; O=產線出冰箱  ; U=開封 ; C=使用完 ; X=報廢)
        /// </summary>
        [Required]
        [Column("STATUS")]
        [StringLength(2)]
        [DataMember]
        [Display(Name = "狀態")]
        public string Status { get; set; } = "WI";

        /// <summary>
        /// 備註
        /// </summary>
        [Column("REMARK")]
        [StringLength(1024)]
        [DataMember]
        [Display(Name = "備註")]
        public string Remark { get; set; }

        /// <summary>
        /// 工單號碼
        /// </summary>
        [Column("WIP_NO")]
        [DataMember]
        [Display(Name = "工單號碼")]
        public string WipNo { get; set; }

        /// <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;
    }
}