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

namespace OASystem.Domain.ViewModels.SmallFun
{
    /// <summary>
    /// googleMapApi 返回试图
    /// </summary>
    public class GoogleMapResultView
    {
        /// <summary>
        /// 地理编码路径点
        /// </summary>
        public object? Geocoded_waypoints { get; set; }

        /// <summary>
        /// 返回数据源
        /// </summary>
        public object? Routes { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        public string? Status { get; set; }
    }

    /// <summary>
    /// 途径
    /// </summary>
    public class Routes
    {
        /// <summary>
        /// 界标
        /// </summary>
        public Bounds? Bounds { get; set; }

        /// <summary>
        /// 版权保护
        /// </summary>
        public string? CopyRights { get; set; }
    }

    #region bounds 界标

    /// <summary>
    /// 界标
    /// </summary>
    public class Bounds {

        /// <summary>
        /// 东北方
        /// </summary>
        public Northeast? Northeast { get; set; }

        /// <summary>
        /// 西南方
        /// </summary>
        public Southwest? Southwest { get; set; }

    }

    /// <summary>
    /// 东北方
    /// </summary>
    public class Northeast
    {
        /// <summary>
        /// 纬度
        /// </summary>
        public string? Lat { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public string Lng { get; set; }
    }

    /// <summary>
    /// 西南方
    /// </summary>
    public class Southwest
    {
        /// <summary>
        /// 纬度
        /// </summary>
        public string? Lat { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public string Lng { get; set; }
    }
    #endregion

    #region leg
   
    /// <summary>
    /// Leg
    /// </summary>
    public class Leg
    {
        /// <summary>
        /// 距离
        /// </summary>
        public TextValue? Distance { get; set; }

        /// <summary>
        /// 时长
        /// </summary>
        public TextValue? Duration { get; set; }

        /// <summary>
        /// 结束地址
        /// </summary>
        public string? End_address { get; set; }

        /// <summary>
        /// 结束地址经纬度
        /// </summary>
        public LatLng? End_location { get; set; }

        /// <summary>
        /// 开始地址
        /// </summary>
        public string? Start_address { get; set; }

        /// <summary>
        /// 开始地址经纬度
        /// </summary>
        public LatLng? Start_location { get; set; }
        
        /// <summary>
        /// Step
        /// </summary>
        public List<Step>? Steps { get; set; }


    }


    /// <summary>
    /// Step
    /// </summary>
    public class Step
    {
        /// <summary>
        /// 距离
        /// </summary>
        public TextValue? Distance { get; set; }

        /// <summary>
        /// 耗时
        /// </summary>
        public TextValue? Duration { get; set; }

        /// <summary>
        /// 结束经纬度
        /// </summary>
        public LatLng? End_location { get; set; }

        /// <summary>
        /// html指令
        /// </summary>
        public string? Html_instructions { get; set; }

        /// <summary>
        /// 多线
        /// </summary>
        public Polyline? Polyline { get; set; }

        /// <summary>
        /// 开始经纬度
        /// </summary>
        public LatLng? Start_location { get; set; }

        /// <summary>
        /// 出行方式
        /// </summary>
        public string? Travel_mode { get; set; }
    }


    /// <summary>
    /// 多线
    /// </summary>
    public class Polyline 
    {
        /// <summary>
        /// 目的
        /// </summary>
        public string? Points { get; set; }
    }

    /// <summary>
    /// 文本值
    /// </summary>
    public class TextValue
    {
        /// <summary>
        /// 文本
        /// </summary>
        public string? Text { get; set; }

        /// <summary>
        /// 值
        /// </summary>
        public int Value { get; set; }
    }

    /// <summary>
    /// 经纬度值
    /// </summary>
    public class LatLng 
    {
        /// <summary>
        /// 纬度
        /// </summary>
        public string? Lat { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public string Lng { get; set; }
    }
    
    
    
    
    #endregion
}
