using Newtonsoft.Json;
using NPOI.OpenXml4Net.OPC;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
namespace MisDataSaveDate.MOM
{
    public class QTStandardInfo
    {
        [JsonProperty("id")]
        public string Id { get; set; }

        [JsonProperty("code")]
        public string Code { get; set; }

        [JsonProperty("name_chs")]
        public string NameChs { get; set; }

        [JsonProperty("createdate")]
        public string CreateDate { get; set; }

        [JsonProperty("lastmodifiedtime")]
        public string LastModifiedTime { get; set; }

        [JsonProperty("materialid")]
        public MaterialID Material { get; set; }

        [JsonProperty("note")]
        public string Note { get; set; }

        [JsonProperty("procedureid")]
        public ProcedureInfo Procedure { get; set; }

        [JsonProperty("standardsortid")]
        public StandardSortInfo StandardSort { get; set; }

        [JsonProperty("standardstate")]
        public string StandardState { get; set; }

        [JsonProperty("standardtypeid")]
        public StandardTypeInfo StandardType { get; set; }

        [JsonProperty("meqmstandarditemsource")]
        public List<StandardItemSource> StandardItemList { get; set; }

        [JsonProperty("meqmstandardvaluesource")]
        public List<StandardValueInfo> StandardValueList { get; set; }
    }

    public class MaterialidInfo
    {
        [JsonProperty("materialid")]
        public string MaterialId { get; set; }

        [JsonProperty("materialid_code")]
        public string MaterialCode { get; set; }

        [JsonProperty("materialid_name_chs")]
        public string MaterialName { get; set; }
    }

    public class ProcedureInfo
    {
        [JsonProperty("procedureid")]
        public string ProcedureId { get; set; }

        [JsonProperty("procedureid_name_chs")]
        public string ProcedureName { get; set; }

        [JsonProperty("procedureid_ppbzgx_gxbh")]
        public string ProcedureCode { get; set; }
    }

    public class StandardSortInfo
    {
        [JsonProperty("standardsortid")]
        public string StandardSortId { get; set; }

        [JsonProperty("standardsortid_code")]
        public string StandardSortCode { get; set; }

        [JsonProperty("standardsortid_name_chs")]
        public string StandardSortName { get; set; }

        [JsonProperty("standardsortid_sortpath")]
        public string StandardSortPath { get; set; }
    }

    public class StandardTypeInfo
    {
        [JsonProperty("standardtypeid")]
        public string StandardTypeId { get; set; }

        [JsonProperty("standardtypeid_code")]
        public string StandardTypeCode { get; set; }

        [JsonProperty("standardtypeid_iseffective")]
        public string IsEffective { get; set; }

        [JsonProperty("standardtypeid_issystem")]
        public string IsSystem { get; set; }

        [JsonProperty("standardtypeid_name_chs")]
        public string StandardTypeName { get; set; }
    }

    public class StandardItemSource
    {
        [JsonProperty("id")]
        public string itemId { get; set; }

        [JsonProperty("standardid")]
        public RelatedStandard Standard { get; set; }

        [JsonProperty("createtime")]
        public DateTime CreateTime { get; set; }

        [JsonProperty("inspecclassification")]
        public string InspectionClassification { get; set; }

        [JsonProperty("inspecclassificationname")]
        public string InspectionClassificationName { get; set; }

        [JsonProperty("note")]
        public string Note { get; set; }

        [JsonProperty("targetauxdescribe")]
        public string TargetAuxDescribe { get; set; }

        [JsonProperty("targetdescribe")]
        public string TargetDescribe { get; set; }

        [JsonProperty("targetgroupid")]
        public TargetGroup TargetGroup { get; set; }

        [JsonProperty("targetid")]
        public TargetInfo Target { get; set; }

        [JsonProperty("targetno")]
        public string TargetNo { get; set; }
    }

    public class RelatedStandard
    {
        [JsonProperty("standardid")]
        public string StandardId { get; set; }

        [JsonProperty("standardid_code")]
        public string StandardCode { get; set; }

        [JsonProperty("standardid_name_chs")]
        public string StandardName { get; set; }
    }

    public class TargetGroup
    {
        [JsonProperty("targetgroupid")]
        public string TargetGroupId { get; set; }

        [JsonProperty("targetgroupid_code")]
        public string TargetGroupCode { get; set; }

        [JsonProperty("targetgroupid_name_chs")]
        public string TargetGroupName { get; set; }
    }

    public class TargetInfo
    {
        [JsonProperty("targetid")]
        public string TargetId { get; set; }

        [JsonProperty("targetid_code")]
        public string TargetCode { get; set; }

        [JsonProperty("targetid_name_chs")]
        public string TargetName { get; set; }

        [JsonProperty("targetid_note")]
        public string TargetNote { get; set; }

        [JsonProperty("targetid_targetgroupid")]
        public string TargetGroupId { get; set; }

        [JsonProperty("targetid_targettype")]
        public string TargetType { get; set; }
    }

    public class StandardValueInfo
    {
        [JsonProperty("id")]
        public string Id { get; set; }

        [JsonProperty("inspectionresults")]
        public InspectionResult InspectionResults { get; set; }

        [JsonProperty("inspectionresultsname")]
        public string InspectionResultsName { get; set; }

        [JsonProperty("itemvaluetype")]
        public string ItemValueType { get; set; }

        [JsonProperty("lowercharacter")]
        public string LowerCharacter { get; set; }

        [JsonProperty("lowerdiffvalue")]
        public decimal? LowerDiffValue { get; set; }

        [JsonProperty("lowervalue")]
        public decimal? LowerValue { get; set; }

        [JsonProperty("note")]
        public string Note { get; set; }

        [JsonProperty("standardid")]
        public string StandardId { get; set; }

        [JsonProperty("standarditemid")]
        public string StandardItemId { get; set; }

        [JsonProperty("standardstrvalue")]
        public string StandardStrValue { get; set; }

        [JsonProperty("standardvalue")]
        public string StandardValue { get; set; }

        [JsonProperty("targetvalueid")]
        public TargetValue TargetValue { get; set; }

        [JsonProperty("uppercharacter")]
        public string UpperCharacter { get; set; }

        [JsonProperty("upperdiffvalue")]
        public string UpperDiffValue { get; set; }

        [JsonProperty("uppervalue")]
        public string UpperValue { get; set; }

        [JsonProperty("valueno")]
        public string ValueNo { get; set; }
    }

    public class InspectionResult
    {
        [JsonProperty("inspectionresults")]
        public string InspectionResults { get; set; }

        [JsonProperty("inspectionresults_code")]
        public string InspectionResultsCode { get; set; }

        [JsonProperty("inspectionresults_enable")]
        public string InspectionResultsEnable { get; set; }

        [JsonProperty("inspectionresults_name")]
        public string InspectionResultsName { get; set; }
    }

    public class TargetValue
    {
        [JsonProperty("targetvalueid")]
        public string TargetValueId { get; set; }

        [JsonProperty("targetvalueid_code")]
        public string TargetValueCode { get; set; }

        [JsonProperty("targetvalueid_name")]
        public string TargetValueName { get; set; }
    }
}