using FluentValidation;
using System;
using System.Collections.Generic;

namespace Kean.Domain.Stock.Commands
{
    /// <summary>
    /// 冻结/解冻前期命令
    /// </summary>
    public class PreSetQcStatusCommand : CommandValidator<PreSetQcStatusCommand>, ICommand
    {
        /// <summary>
        /// 冻结/可用状态
        /// </summary>
        public bool Enable
        {
            get; set;
        }

        /// <summary>
        /// 物料编码
        /// </summary>
        public int? GoodsCode
        {
            get; set;
        }

        /// <summary>
        /// 批次
        /// </summary>
        public string Batch
        {
            get; set;
        }

        /// <summary>
        /// 生产日期
        /// </summary>
        public DateTime? ManufacturingDateFrom
        {
            get; set;
        }

        /// <summary>
        /// 生产日期
        /// </summary>
        public DateTime? ManufacturingDateTo
        {
            get; set;
        }

        /// <summary>
        /// 入库时间
        /// </summary>
        public DateTime? InboundTimeFrom
        {
            get; set;
        }
        /// <summary>
        /// 入库时间
        /// </summary>
        public DateTime? InboundTimeTo
        {
            get; set;
        }
        /// <summary>
        /// 托盘条码
        /// </summary>
        public string Barcode { get; set; }

        /// <summary>
        /// 冻结原因
        /// </summary>
        public string Supplier
        {
            get; set;
        }

        /// <summary>
        /// 操作者
        /// </summary>
        public int Operator
        {
            get; set;
        }

        /// <summary>
        /// 验证项
        /// </summary>
        protected override void Validation()
        {
            //RuleFor(r => r.Barcode).NotEmpty().WithMessage("托盘条码不允许空");
        }

        /// <summary>
        /// 更新数量
        /// </summary>
        public int BarcodeCount
        {
            get; set;
        }

        /// <summary>
        /// 更新数量
        /// </summary>
        public IEnumerable<string> BarcodeList
        {
            get; set;
        }

    }
}