using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using ChangkeTec.SDMS.Model.Attributes;
using ChangkeTec.SDMS.Model.Base;
using ChangkeTec.SDMS.Model.Enums;

namespace ChangkeTec.SDMS.Model.DataCenterTables
{
    [Description("BOM变更表")]

    public class TT_BOM : ITaskTable
    {
        [IsDataGridColum(true, 1)]
        [Description("父级物料")]
        [StringLength(50)]
        public string ParentPart { get; set; }
        [IsDataGridColum(true, 2)]
        [Description("组件")]
        [StringLength(50)]
        public string ComponentPart { get; set; }
        [IsDataGridColum(true, 3)]
        [Description("参考")]
        [StringLength(50)]
        public string Reference { get; set; }
        [IsDataGridColum(true, 4)]
        [Description("生效日期")]
        public DateTime StartEffective { get; set; }
        [IsDataGridColum(true, 5)]
        [Description("每件需求量")]
        public decimal QuantityPer { get; set; }
        [IsDataGridColum(true,6)]
        [Description("结构类型")]
        [StringLength(50)]
        public string StructureType { get; set; }
        [IsDataGridColum(true, 7)]
        [Description("结束有效日")]
        public DateTime EndEffective { get; set; }
        [IsDataGridColum(true, 8)]
        [Description("备注")]
        [StringLength(50)]
        public string Remarks { get; set; }
        [IsDataGridColum(true, 9)]
        [Description("废品")]
        public decimal Scrap { get; set; }
        [IsDataGridColum(true, 10)]
        [Description("提前期")]
        public int LeadTimeOffset { get; set; }
        [IsDataGridColum(true, 11)]
        [Description("工序")]
        public int Operation { get; set; }
        [IsDataGridColum(true, 12)]
        [Description("序号")]
        public int SequenceNumber { get; set; }
        [IsDataGridColum(true, 13)]
        [Description("预测百分比")]
        public decimal FporecastPercent { get; set; }
        [IsDataGridColum(true, 14)]
        [Description("分组")]
        [StringLength(50)]
        public string OptionGroup { get; set; }
        [IsDataGridColum(true, 15)]
        [Description("处理")]
        [StringLength(50)]
        public string Process { get; set; }

        [Key]
        public Guid GUID { get; set; } = Guid.NewGuid();

        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int UID { get; set; }
        [IsDataGridColum(true, 16)]
        [Description("创建人")]
        [StringLength(50)]
        public string CreateUser { get; set; }
        [IsDataGridColum(true, 17)]
        [Description("创建时间")]
        public DateTime CreateTime { get; set; }

        [IsDataGridColum(true, 18)]
        [Description("备注")]
        public string Remark { get; set; }
        [IsDataGridColum(true, 19)]
        [Description("任务编号")]
        public Guid TaskID { get; set; }
        [IsDataGridColum(true, 20)]
        [Description("命令类型")]
        [StringLength(50)]
        public string CommandType { get; set; }
        [IsDataGridColum(true, 21)]
        [Description("数据ID")]
        public Guid DataID { get; set; }

        [Description("域")]
        [StringLength(50)]
        public string Domain { get; set; }

        [Description("地点")]
        [StringLength(50)]
        public string Site { get; set; }
    }
}