using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using wms.dto;

namespace WCS.WorkEngineering.WebApi.Models.WMS.Request
{
    public class FJBuildEmptyPalletsStockRequest
    {
        /// <summary>
        ///  托盘编码
        /// </summary>
        [Required(ErrorMessage = "{0} 不可为空")]
        public string PalletCode { get; set; }

        /// <summary>
        ///  托盘类型
        /// </summary>
        public FJPalletType PalletType { get; set; }

        /// <summary>
        ///  托盘数量
        /// </summary>
        [Description("托盘数量")]
        public string PalletNum { get; set; }

        /// <summary>
        ///  入库起始地址
        /// </summary>
        [Required(ErrorMessage = "{0} 不可为空")]
        public string StartLoc { get; set; }

        /// <summary>
        ///  仓库编码
        /// </summary>
        [Required(ErrorMessage = "{0} 不可为空")]
        public string WareCode { get; set; }

        /// <summary>
        /// 楼层
        /// </summary>
        public int Floor { get; set; }

        /// <summary>
        ///  业务类型
        /// </summary>
        public TaskBusType BusType { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        public string? UpdatedTime { get; set; }
    }

    /// <summary>
    ///  分拣业务类型
    /// </summary>
    public enum TaskBusType
    {
        /// <summary>
        ///  默认
        /// </summary>
        [Description("默认")]
        def = 0,

        /// <summary>
        ///  一楼空托入库
        /// </summary>
        [Description("一楼空托入库")]
        OneLayerManualPallets = 1,

        /// <summary>
        ///  一楼自动入空托盘
        /// </summary>
        [Description("一楼自动入空托盘")]
        OneLayerAutoPallets = 2,

        /// <summary>
        ///  手动出库
        /// </summary>
        [Description("手动出库")]
        TaskBusType_FJ_ManualOut = 3,

        /// <summary>
        ///  二楼组盘
        /// </summary>
        [Description("二楼组盘")]
        二楼组盘 = 4,

        /// <summary>
        ///  二楼空托盘组出库
        /// </summary>
        [Description("二楼空托盘组出库")]
        二楼空托盘组出库 = 5,

        /// <summary>
        ///  组盘_托盘
        /// </summary>
        [Description("组盘_托盘")]
        组盘_托盘 = 6,

        /// <summary>
        ///  码垛入库
        /// </summary>
        [Description("码垛入库")]
        码垛入库 = 7,

        /// <summary>
        ///  环形库出库码垛任务
        /// </summary>
        [Description("环形库出库码垛任务")]
        环形库出库码垛任务 = 8,

        /// <summary>
        ///  车间叫料
        /// </summary>
        [Description("车间叫料")]
        车间叫料 = 9,

        /// <summary>
        ///  二楼异常组盘
        /// </summary>
        [Description("二楼异常组盘")]
        二楼异常组盘 = 10,

        /// <summary>
        ///  车间手动叫料
        /// </summary>
        [Description("车间手动叫料")]
        车间手动叫料 = 11,

        /// <summary>
        ///  二楼二次码垛出库
        /// </summary>
        [Description("二楼二次码垛出库")]
        二楼二次码垛出库 = 12,

        /// <summary>
        ///  人工满托入库
        /// </summary>
        [Description("人工满托入库")]
        人工满托入库 = 13,

        /// <summary>
        ///  芯股用空托盘入库
        /// </summary>
        [Description("芯股用空托盘入库")]
        芯股用空托盘入库 = 14,

        /// <summary>
        ///  芯股站台送空托
        /// </summary>
        [Description("芯股站台送空托")]
        芯股站台送空托 = 15,

        /// <summary>
        ///  皮盘入库
        /// </summary>
        [Description("皮盘入库")]
        皮盘入库 = 16
    }
}