using SqlSugar;
using System;
using System.Runtime.Serialization;

namespace SlnMesnac.Model.domain
{
    /// <summary>
    /// AGV状态表
    ///</summary>
    [SugarTable("wcs_agv_status"), TenantAttribute("wcs")]
    [DataContract(Name = "AGV状态表")]
    public class WcsAgvStatus
    {
        /// <summary>
        /// 机器人海康编号
        /// </summary>
        [SugarColumn(ColumnName = "robotCode", IsPrimaryKey = true, Length = 20, ColumnDescription = "机器人海康编号")]
        public string RobotCode { get; set; }

        /// <summary>
        /// 设备编号
        /// </summary>
        [SugarColumn(ColumnName = "equip_no", Length = 20, ColumnDescription = "设备编号")]
        public string EquipNo { get; set; }

        /// <summary>
        /// 小车名称
        /// </summary>
        [SugarColumn(ColumnName = "agvName", Length = 20, ColumnDescription = "小车名称")]
        public string AgvName { get; set; }

        /// <summary>
        /// 电量
        /// </summary>
        [SugarColumn(ColumnName = "battery", Length = 255, ColumnDescription = "电量")]
        public string Battery { get; set; }

        /// <summary>
        /// 是否已被排除，被排除后不接受新任务（1-排除，0-正常）
        /// </summary>
        [SugarColumn(ColumnName = "exclType", Length = 255, ColumnDescription = "是否已被排除，被排除后不接受新任务（1-排除，0-正常）")]
        public string ExclType { get; set; }

        /// <summary>
        /// 地图编号
        /// </summary>
        [SugarColumn(ColumnName = "mapCode", Length = 10, ColumnDescription = "地图编号")]
        public string MapCode { get; set; }

        /// <summary>
        /// 是否在线
        /// </summary>
        [SugarColumn(ColumnName = "online", Length = 10, ColumnDescription = "是否在线")]
        public string Online { get; set; }

        /// <summary>
        /// 路线
        /// </summary>
        [SugarColumn(ColumnName = "path", Length = 1000, ColumnDescription = "路线")]
        public string Path { get; set; }

        /// <summary>
        /// 背货架的编号
        /// </summary>
        [SugarColumn(ColumnName = "podCode", Length = 20, ColumnDescription = "背货架的编号")]
        public string PodCode { get; set; }

        /// <summary>
        /// 背货架的方向
        /// </summary>
        [SugarColumn(ColumnName = "podDir", Length = 20, ColumnDescription = "背货架的方向")]
        public string PodDir { get; set; }

        /// <summary>
        /// X坐标
        /// </summary>
        [SugarColumn(ColumnName = "posX", Length = 10, ColumnDescription = "X坐标")]
        public string PosX { get; set; }

        /// <summary>
        /// Y坐标
        /// </summary>
        [SugarColumn(ColumnName = "posY", Length = 10, ColumnDescription = "Y坐标")]
        public string PosY { get; set; }

        /// <summary>
        /// 机器人方向 (范围 -180~360度)
        /// </summary>
        [SugarColumn(ColumnName = "robotDir", Length = 10, ColumnDescription = "机器人方向 (范围 -180~360度)")]
        public string RobotDir { get; set; }

        /// <summary>
        /// 机器人IP
        /// </summary>
        [SugarColumn(ColumnName = "robotIp", Length = 20, ColumnDescription = "机器人IP")]
        public string RobotIp { get; set; }

        /// <summary>
        /// 机器人速度
        /// </summary>
        [SugarColumn(ColumnName = "speed", Length = 10, ColumnDescription = "机器人速度")]
        public string Speed { get; set; }

        /// <summary>
        /// 机器人状态
        /// </summary>
        [SugarColumn(ColumnName = "status", Length = 10, ColumnDescription = "机器人状态")]
        public string Status { get; set; }

        /// <summary>
        /// 详细状态信息，关联agv状态码查询
        /// </summary>
        [SugarColumn(ColumnName = "status_detail", Length = 10, ColumnDescription = "详细状态信息，关联agv状态码查询")]
        public string? StatusDetail { get; set; }

        /// <summary>
        /// 是否暂停 0-否 1-是
        /// </summary>
        [SugarColumn(ColumnName = "stop", Length = 5, ColumnDescription = "是否暂停 0-否 1-是")]
        public string Stop { get; set; }

        /// <summary>
        /// 时间
        /// </summary>
        [SugarColumn(ColumnName = "timestamp", ColumnDescription = "时间")]
        public DateTime? Timestamp { get; set; }
    }
}