using Newtonsoft.Json;

namespace Model;

public class MissionInformation
{
    [JsonProperty("任务名称")]
    public string MissionName;
    [JsonProperty("任务ID")]
    public string MissionId;
    [JsonProperty("任务主要类型")]
    public string MissionMainType;
    [JsonProperty("任务类型")]
    public string MissionType;
    [JsonProperty("开始时间")]
    public string StartTime;
    [JsonProperty("结束时间")]
    public string EndTime;
    [JsonProperty("应用机型")]
    public string[] AircraftInfos;
    [JsonProperty("应用飞机编号")]
    public string[] AircraftId;
}

public class MissionPoint 
{
    [JsonProperty("任务点经度")]
    public double MissionPointLongitude;
    [JsonProperty("任务点纬度")]
    public double MissionPointLatitude;
    [JsonProperty("任务点海拔")]
    public double MissionPointHeight;
}

public class ZCTask
{
    [JsonProperty("任务信息")]
    public MissionInformation missionInformation;
    [JsonProperty("矩形侦查区域边界点")]
    public List<double[]> poly;
    [JsonProperty("扫描线间距")]
    public double ScanRange;
    [JsonProperty("侦查飞行真高")]
    public double hSC;
    [JsonProperty("是否真实高度")]
    public bool isRealHeight;
    [JsonProperty("是否环绕模式")]
    public bool isSurround;
    [JsonProperty("环绕圈数")]
    public int SurroundNum;
    [JsonProperty("火点ID")]
    public int FirePointId;
    public MissionPoint[] MissionPoints;
    [JsonProperty("下一个任务ID")]
    public string NextTaskId;
}

public class SHJTask
{
    [JsonProperty("任务信息")]
    public MissionInformation missionInformation;
    [JsonProperty("索滑降高度")]
    public double H;
    [JsonProperty("投送人数")]
    public int person_number;
    [JsonProperty("风速")]
    public double windspeed;
    [JsonProperty("能见度")]
    public double vis;
    [JsonProperty("索滑降速度")]
    public double descendspeed;
    [JsonProperty("转运人数")]
    public int personNumber;
    [JsonProperty("索滑降点")]
    public MissionPoint[] MissionPoints;
    [JsonProperty("下一个任务ID")]
    public string NextTaskId;
}

public class DMMHTask
{
    [JsonProperty("任务信息")]
    public MissionInformation missionInformation;
    [JsonProperty("地面部署人数")]
    public double GroundPersonnel;
    [JsonProperty("机降人数")]
    public double LandingPersonnel;
    [JsonProperty("机降点")]
    public MissionPoint[] MissionPoints;
    [JsonProperty("下一个任务ID")]
    public string NextTaskId;
}

public class AirRoute
{
    [JsonProperty("巡护航线名称")]
    public string AirRouteName;
    [JsonProperty("巡护航线点经度")]
    public double AirRouteLongitude;
    [JsonProperty("巡护航线点纬度")]
    public double AirRouteLatitude;
    [JsonProperty("巡护航线点海拔")]
    public double AirRouteHeight;
}
public class XHTask
{
    public double DelayTime;
    [JsonProperty("任务信息")]
    public MissionInformation missionInformation;
    [JsonProperty("巡护航线参数")]
    public AirRoute[] airroute;
    [JsonProperty("火点ID")]
    public int FirePointId;
    public MissionPoint[] MissionPoints;
    [JsonProperty("下一个任务ID")]
    public string NextTaskId;
}

public class MHTask
{
   [JsonProperty("任务信息")]
   public MissionInformation missionInformation;
   [JsonProperty("取水点")]
   public MissionPoint[] MissionPoints;
   [JsonProperty("下一个任务ID")]
   public string NextTaskId;
}

public class MHTaskConfig
{
    [JsonProperty("总灭火任务编号")]
    public int TotalMHId;
    [JsonProperty("火点ID")]
    public int FirePointId;
    [JsonProperty("吊桶洒水灭火任务")]
    public List<MHTask> mHTask = new List<MHTask>();
    [JsonProperty("机降灭火任务")]
    public List<DMMHTask> dMMHTask = new List<DMMHTask>();
    [JsonProperty("索滑降灭火任务")]
    public List<SHJTask> sHJTask = new List<SHJTask>();
}

public class TaskConfig
{
    [JsonProperty("灭火任务")]
    public List<MHTaskConfig>mHTaskConfigs = new List<MHTaskConfig>();
    [JsonProperty("火场侦查任务")]
    public List<ZCTask>zCTask= new List<ZCTask>();
    [JsonProperty("防火巡护任务")]
    public List<XHTask> xHTask = new List<XHTask>();
}