using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace MisDataSaveDate.MOM
{
    public class InspectionPlan
    {
        [JsonProperty("id")]
        public string Id { get; set; }

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

        [JsonProperty("name")]
        public string Name { get; set; }

        [JsonProperty("usecompecode")]
        public string CompileUnitCode { get; set; }

        [JsonProperty("usecompename")]
        public string CompileUnitName { get; set; }

        [JsonProperty("checktypecode")]
        public string CheckTypeCode { get; set; }

        [JsonProperty("checktypename")]
        public string CheckTypeName { get; set; }

        [JsonProperty("cycleplan")]
        public string IsCyclePlan { get; set; }

        [JsonProperty("checkcycle")]
        public string CheckCycle { get; set; }

        [JsonProperty("cycleunit")]
        public string CycleUnit { get; set; }

        [JsonProperty("nextchecktime")]
        public string NextCheckTime { get; set; }

        [JsonProperty("planstatus")]
        public string PlanStatus { get; set; }

        [JsonProperty("whetherinspect")]
        public string WhetherInspect { get; set; }

        [JsonProperty("taskvalidityperiod")]
        public string TaskValidityPeriod { get; set; }

        [JsonProperty("validityunit")]
        public string ValidityUnit { get; set; }

        [JsonProperty("daysahead")]
        public string DaysAhead { get; set; }

        [JsonProperty("aheadunit")]
        public string AheadUnit { get; set; }

        [JsonProperty("checkobjects")]
        public List<CheckObject> CheckObjects { get; set; }
    }

    public class CheckObject
    {
        [JsonProperty("checkobjectsid")]
        public string CheckObjectId { get; set; }

        [JsonProperty("amcode")]
        public string AssetCode { get; set; }

        [JsonProperty("amname")]
        public string AssetName { get; set; }

        [JsonProperty("poscode")]
        public string PositionCode { get; set; }

        [JsonProperty("posname")]
        public string PositionName { get; set; }

        [JsonProperty("plancheckercode")]
        public string PlanCheckerCode { get; set; }

        [JsonProperty("plancheckername")]
        public string PlanCheckerName { get; set; }

        [JsonProperty("detail")]
        public List<CheckDetail> Details { get; set; }
    }

    public class CheckDetail
    {
        [JsonProperty("detailid")]
        public string DetailId { get; set; }

        [JsonProperty("checkpart")]
        public string CheckPart { get; set; }

        [JsonProperty("checkitem")]
        public string CheckItem { get; set; }

        [JsonProperty("checkcontent")]
        public string CheckContent { get; set; }

        [JsonProperty("checkmethodcode")]
        public string CheckMethodCode { get; set; }

        [JsonProperty("checkmethodname")]
        public string CheckMethodName { get; set; }

        [JsonProperty("standardclaim")]
        public string StandardClaim { get; set; }

        [JsonProperty("resulttype")]
        public string ResultType { get; set; }

        [JsonProperty("resultoptionsids")]
        public string ResultOptionsIds { get; set; }

        [JsonProperty("resultoptions")]
        public string ResultOptions { get; set; }

        [JsonProperty("Abnmeasurescode")]
        public string AbnormalMeasuresCode { get; set; }

        [JsonProperty("abnmeasuresname")]
        public string AbnormalMeasuresName { get; set; }

        [JsonProperty("checkstatusenumcode")]
        public string CheckStatusEnumCode { get; set; }

        [JsonProperty("checkstatusenumname")]
        public string CheckStatusEnumName { get; set; }

        [JsonProperty("isphotographed")]
        public string IsPhotographed { get; set; }

        [JsonProperty("plancheckercode")]
        public string PlanCheckerCode { get; set; }

        [JsonProperty("plancheckername")]
        public string PlanCheckerName { get; set; }

        [JsonProperty("lastchecktime")]
        public string LastCheckTime { get; set; }
    }
}