using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace MisDataSaveDate
{
    /// <summary>
    /// 临工AGV网页按钮调度请求。
    /// </summary>
    public class LGWEB_DispatchRequest
    {
        public string dispatchMode { get; set; }
        public string routeCode { get; set; }
        public string requestTaskId { get; set; }
        public string startPosition { get; set; }
        public string midPosition { get; set; }
        public string endPosition { get; set; }
        public string materialCode { get; set; }
        public string productCode { get; set; }
        public string productModelCode { get; set; }
        public string productModel { get; set; }
        public string actionCode { get; set; }
        public string processPointType { get; set; }
        public string workStation { get; set; }
        public string containerNo { get; set; }
        public string orderNo { get; set; }
        public string operatorCode { get; set; }
        public string operatorName { get; set; }
        public string remark { get; set; }
    }

    /// <summary>
    /// 临工AGV网页按钮放行请求。
    /// </summary>
    public class LGWEB_AllowLeaveRequest
    {
        public string requestId { get; set; }
        public string position { get; set; }
        public string agvNo { get; set; }
        public string operatorCode { get; set; }
        public string operatorName { get; set; }
        public string remark { get; set; }
    }

    /// <summary>
    /// 临工AGV调度内部结果，WebAPI 和 Function 共用。
    /// </summary>
    public class LGWEB_DispatchResult
    {
        [JsonProperty("success")]
        public bool Success { get; set; }

        [JsonProperty("message")]
        public string Message { get; set; }

        [JsonProperty("dispatchMode")]
        public string DispatchMode { get; set; }

        [JsonProperty("requestTaskId")]
        public string RequestTaskId { get; set; }

        [JsonProperty("routeCode")]
        public string RouteCode { get; set; }

        [JsonProperty("startPosition")]
        public string StartPosition { get; set; }

        [JsonProperty("midPosition")]
        public string MidPosition { get; set; }

        [JsonProperty("endPosition")]
        public string EndPosition { get; set; }

        [JsonProperty("originalEndPosition")]
        public string OriginalEndPosition { get; set; }

        [JsonProperty("productPointMatched")]
        public string ProductPointMatched { get; set; }

        [JsonProperty("processPointType")]
        public string ProcessPointType { get; set; }

        [JsonProperty("routeMessage")]
        public string RouteMessage { get; set; }

        [JsonProperty("agvResponse")]
        public JObject AgvResponse { get; set; }
    }
}
