using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GPSBusiness.Model
{
    /// <summary>
    ///     路径规划实体
    /// </summary>
    public class PathPlanning
    {
        /// <summary>
        /// 返回状态
        /// 值为0或1 1:成功;0:失败
        /// </summary>
        [JsonProperty("status")]
        public object Status { get; set; }

        /// <summary>
        /// 返回的状态信息
        /// status为0时,info返回错误原;否则返回“OK”。详情参阅info状态表
        /// </summary>
        [JsonProperty("info")]
        public object Info { get; set; }

        /// <summary>
        /// 返回结果总数目
        /// </summary>
        [JsonProperty("count")]
        public object Count { get; set; }

        /// <summary>
        /// 路线信息列表
        /// </summary>
        [JsonProperty("route")]
        public Route Routes { get; set; }
    }

    public class Route
    {
        /// <summary>
        /// 起点坐标
        /// </summary>
        [JsonProperty("origin")]
        public object Origin { get; set; }

        /// <summary>
        /// 终点坐标
        /// </summary>
        [JsonProperty("destination")]
        public object Destination { get; set; }

        /// <summary>
        /// 步行方案
        /// </summary>
        [JsonProperty("paths")]
        public List<Path> Paths { get; set; }
    }

    public class Path
    {
        /// <summary>
        /// 起点和终点的步行距离
        /// 单位:米
        /// </summary>
        [JsonProperty("distance")]
        public object Distance { get; set; }

        /// <summary>
        /// 步行时间预计
        /// 单位:秒
        /// </summary>
        [JsonProperty("duration")]
        public object Duration { get; set; }

        /// <summary>
        /// 返回步行结果列表
        /// </summary>
        [JsonProperty("steps")]
        public List<Step> Steps { get; set; }
    }

    public class Step
    {
        /// <summary>
        /// 每段步行方案
        /// </summary>
        [JsonProperty("instruction")]
        public object Instruction { get; set; }

        /// <summary>
        /// 方向
        /// </summary>
        [JsonProperty("orientation")]
        public object Orientation { get; set; }

        /// <summary>
        /// 道路名称
        /// </summary>
        [JsonProperty("road")]
        public object Road { get; set; }

        /// <summary>
        /// 此路段距离
        /// </summary>
        [JsonProperty("distance")]
        public object Distance { get; set; }

        /// <summary>
        /// 此路段预计步行时间
        /// </summary>
        [JsonProperty("duration")]
        public object Duration { get; set; }

        /// <summary>
        /// 此路段坐标点
        /// </summary>
        [JsonProperty("polyline")]
        public object Polyline { get; set; }
    }
}