using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace WCS.Model.ApiModel.MatDetailCurrentInfo
{
    public class MatDetailCurrentInfoModel : INotifyPropertyChanged
    {
        public int Id { get; set; }

        #region 货架属性
        public int? ShelfId { get; set; }
        public string? ShelfCode { get; set; } = string.Empty;
        public string? ShelfType { get; set; } = string.Empty;
        //货架位置的区域
        public string? LocationArea { get; set; } = string.Empty;
        /// <summary>
        /// 货架位置
        /// </summary>
        public string? LocationCode { get; set; } = string.Empty;
        #endregion

        #region 物料属性
        public string? MatCode { get; set; } = string.Empty;

        public string? MatName { get; set; } = string.Empty;

        public string? MatBatch { get; set; } = string.Empty;

        public string? MatSpec { get; set; } = string.Empty;

        public string? MatUnit { get; set; } = string.Empty;

        public string? MatSupplier { get; set; } = string.Empty;

        public string? MatCustomer { get; set; } = string.Empty;

        public int MatQty { get; set; }
        #endregion

        #region 批量绑定相关
        //当前位置编码
        public string? StationCode { get; set; } = string.Empty;

        public int? OrderTypeId { get; set; }

        public string OrderTypeName { get; set; } = string.Empty;

        public string OrderNumber { get; set; } = string.Empty;
        #endregion

        public string? ModifyUser { get; set; } = string.Empty;

        public DateTime? ModifyTime { get; set; } = DateTime.Now;

        public DateTime? BindTime { get; set; } = DateTime.Now;
        #region 盘点数量
        public int StocktakingQty { get; set; } = -1;
        #endregion

        public int RowNumber { get; set; }

        public bool IsSelected
        {
            get { return isSelected; }
            set
            {
                isSelected = value;
                OnPropertyChanged(nameof(IsSelected));
            }
        }
        public bool isSelected;

        public event PropertyChangedEventHandler PropertyChanged;
        protected virtual void OnPropertyChanged(string propertyName)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}
