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

namespace SlnMesnac.Model.domain
{
    [SugarTable("wcs_base_equip"), TenantAttribute("wcs")]
    [DataContract(Name = "设备信息表")]
    public class WcsBaseEquip
    {
        [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主键")]
        public int Id { get; set; }

        /// <summary>
        /// 所属车间编号(2-2#,3-3#)
        /// </summary>
        [SugarColumn(ColumnName = "workshop_id")]
        public int WorkshopId { get; set; }

        /// <summary>
        /// 所属仓库
        /// </summary>
        [SugarColumn(ColumnName = "warehouse_id")]
        public int WarehouseId { get; set; }

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

        /// <summary>
        /// 设备名称
        /// </summary>
        [SugarColumn(ColumnName = "equip_name")]
        public string EquipName { get; set; }

        [SugarColumn(ColumnName = "server_ip", ColumnDescription = "IP地址")]
        public string ServerIp { get; set; }

        [SugarColumn(ColumnName = "server_port", ColumnDescription = "端口")]
        public int ServerPort { get; set; }

        /// <summary>
        /// 设备类型（1-agv,2-四宫格托盘补充点.3-2楼机台上料点；7-返程色粉库位）
        /// </summary>
        [SugarColumn(ColumnName = "equip_type")]
        public int EquipType { get; set; }

        /// <summary>
        ///  "设备状态,字典表,0-空闲；1-忙碌"
        /// </summary>
        [SugarColumn(ColumnName = "equip_status")]
        public int EquipStatus { get; set; }

        /// <summary>
        /// 可用标识;是否可用  0:不可用  1:可用
        /// </summary>
        [SugarColumn(ColumnName = "use_flag")]
        public int UseFlag { get; set; }

        /// <summary>
        /// 存放料箱类型(0-无料箱，1-满四宫格、2-满小料箱、3-带色粉小料箱、4-空四宫格、5-空小料箱)
        /// </summary>
        //[SugarColumn(ColumnName = "container_type")]
        // public int ContainerType { get; set; }

        /// <summary>
        /// 容器数量;容器数量，用于记录满空料箱个数
        /// </summary>
        // [SugarColumn(ColumnName = "container_amount")]
        // public int ContainerAmount { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        [SugarColumn(ColumnName = "update_time")]
        public DateTime UpdateTime { get; set; }

        [SugarColumn(ColumnName = "agv_position_code", ColumnDescription = "agv使用点位名称")]
        public string AgvPositionCode { get; set; }

        /// <summary>
        /// 容器编码
        /// </summary>
        [SugarColumn(ColumnName = "container_code")]
        public string? ContainerCode { get; set; }
    }
}