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>
    /// SOP文件紀錄
    /// </summary>
    [Table("MATERIAL_SOP", Schema = "JHAMES")]
    [DataContract]
    public partial class MaterialSop
    {
        /// <summary>
        /// MaterialSopID
        /// </summary>
        [Key]
        [Column("MATERIAL_SOP_ID")]
        [DataMember]
        public int MaterialSopID { get; set; }

        /// <summary>
        /// 料號 or 工程編號
        /// </summary>
        [DataMember]
        [Display(Name = "工程編號")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("ITEM_NO")]
        [StringLength(20)]

        public string ItemNo { get; set; }

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

        /// <summary>
        /// SOP文件敘述
        /// </summary>
        [Display(Name = "SOP文件敘述")]
        [Required(ErrorMessage = "{0},不能空白")]
        [Column("SOP_NAME")]
        [StringLength(200)]
        [DataMember]
        public string SopName { get; set; }

        /// <summary>
        /// 檔案路徑
        /// </summary>
        [Display(Name = "檔案路徑")]
        [Column("SOP_PATH")]
        [StringLength(100)]
        [DataMember]
        public string SopPath { get; set; }

        /// <summary>
        /// SOP類型
        /// </summary>
        [DataMember]
        [Display(Name = "SOP類型")]
        [Required]
        [Column("SOP_TYPE")]
        [StringLength(10)]
        public string SopType { 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;

        /// <summary>
        /// 生產單位資料
        /// </summary>
        [ForeignKey("UnitNo")]
        public virtual BAS.FactoryUnit FactoryUnit { get; set; }

    }
}