using BBWY.Client.APIServices;
using BBWY.Client.Models.APIModel.Response.PackTask;
using GalaSoft.MvvmLight.Command;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;

namespace BBWY.Client.Models.PackTask
{
    public class PackItemModel : NotifyObject
    {
        private string itemName;
        public string ItemName { get => itemName; set { Set(ref itemName, value); } }

        private string selectUserId;
        /// <summary>
        /// Member.userId
        /// </summary>
        public string SelectUserId { get => selectUserId; set { Set(ref selectUserId, value); } }

        private long? selectId;
        /// <summary>
        /// 选中的Id
        /// </summary>
        public long? SelectId { get => selectId; set { Set(ref selectId, value); } }

        private string memberName;
        public string MemberName { get => memberName; set { Set(ref memberName, value); } }

        private int itemCount;
        public int ItemCount { get => itemCount; set { Set(ref itemCount, value); } }




        private ObservableCollection<PackServiceDTO> increateServiceList;
        public ObservableCollection<PackServiceDTO> IncreateServiceList
        {
            get => increateServiceList; set
            {
                Set(ref increateServiceList, value);
            }
        }

        private ObservableCollection<PackUser> memberList;
        public ObservableCollection<PackUser> MemberList
        {
            get => memberList; set
            {
                Set(ref memberList, value);
            }
        }
        private ObservableCollection<ConsumableModel> consumableList;
        public ObservableCollection<ConsumableModel> ConsumableList
        { get => consumableList; set { Set(ref consumableList, value); } }

        /// <summary>
        /// 工序服务
        /// </summary>
        private ObservableCollection<PackServiceDTO> packServiceList;
        public ObservableCollection<PackServiceDTO> PackServiceList { get => packServiceList; set { Set(ref packServiceList, value); } }
        /// <summary>
        /// 设置列表的 是否编辑属性
        /// </summary>
        public bool IsEnable { get; set; }

        public ICommand DeleteServiceCommand { get; set; }

        public PackItemModel()
        {
            DeleteServiceCommand = new RelayCommand<object>(DeleteService);
        }

        private void DeleteService(object obj)
        {
            ObservableCollection<PackItemModel> list = obj as ObservableCollection<PackItemModel>;
            list.Remove(this);
        }
    }
}