using System;
using System.Collections.Generic;
using System.Text;

namespace SlnMesnac.Model.AirportApiEntity
{
    /// <summary>
    /// 获取车辆所有信息响应实体类
    /// </summary>
    public class ResponseRobotAtrributeDataEntity
    {

        /// <summary>
        /// 机器人ID
        /// </summary>
        public string Guid { get; set; }

        /// <summary>
        /// 机器人名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 运动状态
        /// 0：暂⽆信息 1：待机 2：执⾏任务 3：充电中 4：暂停 5：急停 6：异常 7：建图中 8：等待 9：调度控制
        /// ？（文档空缺）任务暂停 51：同步 52：脱机
        /// </summary>
        public int AgvMoveStatus { get; set; }

        /// <summary>
        /// 任务模板ID
        /// </summary>
        public string jobId { get; set; }

        /// <summary>
        /// 子任务ID
        /// </summary>
        public string orderId { get; set; }

        /// <summary>
        /// 任务ID
        /// </summary>
        public string TaskID { get; set; }

        /// <summary>
        /// 当前执行动作
        /// </summary>
        public CurrentActionEntity currentAction { get; set; }

        /// <summary>
        /// 错误
        /// </summary>
        public List<AGVErrorEntity> error { get; set; }

    }

    /// <summary>
    /// 车辆当前执行动作实体类
    /// </summary>
    public class CurrentActionEntity
    {
        /// <summary>
        /// 动作ID
        /// </summary>
        public string guid { get; set; }

        /// <summary>
        /// 任务类型
        /// 1：移动 2：播放声⾳ 3：亮灯带 4：停留 5：检查位置状态 6：占地⾯积 7：切换地图 8：移动⾄预备位置 9：停靠 
        /// 10：相对移动 11：等待 12：if else 13：设置plc 14:等待plc 15：停⽌⾳效 16：停⽌灯带 17:暂停 18：loop 
        /// 23：while 29：任务模板
        /// </summary>
        public string actionType { get; set; }

        /// <summary>
        /// 参数列表
        /// </summary>
        public List<AGVCurrentActionParamesEntity> Parames { get; set; }
    }

    /// <summary>
    /// 车辆动作参数实体类
    /// </summary>
    public class AGVCurrentActionParamesEntity
    {
        /// <summary>
        /// 动作参数guid
        /// </summary>
        public string guid { get; set; }

        /// <summary>
        /// 参数名称
        /// </summary>
        public string paramName { get; set; }

        /// <summary>
        /// 动作类型
        /// </summary>
        public int type { get; set; }

        /// <summary>
        /// 参数值
        /// </summary>
        public string value { get; set; }
    }

    /// <summary>
    /// 车辆错误信息实体类
    /// </summary>
    public class AGVErrorEntity
    {
        /// <summary>
        /// 错误码
        /// </summary>
        public int errorCode { get; set; }

        /// <summary>
        /// 错误模块
        /// </summary>
        public int errorModule { get; set; }

        /// <summary>
        /// 错误消息
        /// </summary>
        public string errorMsg { get; set; }
    }
}
