using Model;
using Newtonsoft.Json;

public class Base
{
    [JsonProperty("基地名称")]
    public string BaseName;
    [JsonProperty("位置信息")]
    public string BasePositionInfo;
    [JsonProperty("基地编号")]
    public int BaseId;
    [JsonProperty("基地经度")]
    public double BaseLongitude;
    [JsonProperty("基地纬度")]
    public double BaseLatitude;
    [JsonProperty("基地海拔")]
    public double BaseHeight;
}

public struct AircraftParameter
{
    [JsonProperty("机型")]
    public string AircraftID;
    [JsonProperty("飞机编号")]
    public string Id;//如1-2,1表示基地1,2表示基地1中的2号飞机
    [JsonProperty("类型")]
    public string AircraftType;
    [JsonProperty("子类型")]
    public string AircraftSubType;
    [JsonProperty("所属机场ID")]
    public int AirportId;
    [JsonProperty("状态")]
    public string AircraftState;
    [JsonProperty("已连续工作时间")]
    public double AircraftRunTime;
    [JsonProperty("任务载荷型号")]
    public TaskLoadType taskLoadType;
    [JsonProperty("最大起飞重量")]
    public double MaxTakeoffWeight;
    [JsonProperty("最大载油量")]
    public double MaxFuelCapacity;
    [JsonProperty("最大载客数量")]
    public double MaxPassengerNumber;
}

public class TaskLoadType
{
    [JsonProperty("雷达设备")]
    public string RadarEquipment;
    [JsonProperty("光电探测设备")]
    public string PhotoelectricDetectionEquipment;
}

public class FirePoint
{
    [JsonProperty("火点ID")]
    public int FirePointId;
    [JsonProperty("火点经度")]
    public double FirePointLongitude;
    [JsonProperty("火点纬度")]
    public double FirePointLatitude;
    [JsonProperty("火点海拔")]
    public double FirePointHeight;
    [JsonProperty("初始火场面积")]
    public double InitialArea;
    [JsonProperty("初始火线长度")]
    public double fireLength;

}
public class TargetPoint//搜救目标点初始坐标
{
    [JsonProperty("目标点ID")]
    public int TargetPointId;
    [JsonProperty("目标点经度")]
    public double TargetPointLongitude;
    [JsonProperty("目标点纬度")]
    public double TargetPointLatitude;
    [JsonProperty("目标点海拔")]
    public double TargetPointHeight;
    [JsonProperty("目标类型")]
    public TargetType TargetType;
}

public class TargetType
{
    [JsonProperty("类型")]
    public string Type;
    [JsonProperty("目标大小")]
    public string Size;
    [JsonProperty("目标吨位")]
    public string Tonnage;
}

public class ClimbSegment
{
    [JsonProperty("爬升段速度")]
    public double ClimbVelocity;
    [JsonProperty("爬升段油耗率")]
    public double ClimbFuelConsumptionRate;
}

public class DescentSegment
{
    [JsonProperty("下降段速度")]
    public double DescentVelocity;
    [JsonProperty("下降段油耗率")]
    public double DescentFuelConsumptionRate;
}

public class CruiseSegment
{
    [JsonProperty("巡航段高度")]
    public double CruiseHeight = 2000;
    [JsonProperty("巡航段速度")]
    public double CruiseVelocity;
    [JsonProperty("巡航段油耗率")]
    public double CruiseFuelConsumptionRate;
}


public struct CityWeather
{
    [JsonProperty("调用方式")]
    public string CallMethod;
    [JsonProperty("温度")]
    public double Temperature;
    //能见度
    [JsonProperty("能见度")]
    public double Visibility;
    //水温
    [JsonProperty("水温")]
    public double WaterTemperature;
}

public struct ScenarioInfo
{
    [JsonProperty("想定日期")]
    public string Data;
    [JsonProperty("想定时间")]
    public string Time;
}

public class EditorConfig
{
    [JsonProperty("仿真次数")]
    public int runCounts;
    [JsonProperty("想定信息")]
    public ScenarioInfo scenarioInfo = new ScenarioInfo();
    [JsonProperty("基地信息")]
    public List<Base> bases = new List<Base>();
    [JsonProperty("飞行器信息")]
    public List<AircraftParameter>aircraftParameters = new List<AircraftParameter>();
    [JsonProperty("火点")]
    public List<FirePoint> firePoints = new List<FirePoint>();
    [JsonProperty("天气信息")]
    public CityWeather cityWeather = new CityWeather();
    [JsonProperty("搜救目标点初始坐标")]
    public List<TargetPoint> targetPoints = new List<TargetPoint>();
}