using CommunityToolkit.Mvvm.ComponentModel;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;

namespace Common.Models
{
    public enum TipTypeEnum
    {
        _50UL = 1,
        _300UL = 2,
        _1000UL = 3,
    }

    [Serializable]
    public class TipHeadItem : ObservableObject
    {
        private bool _isAvailable;
        public bool IsAvailable
        {
            get => _isAvailable;
            set
            {
                SetProperty(ref _isAvailable, value);
            }
        }

        private int useindex = 0;

        public int UseIndex
        {
            get { return useindex; }
            set { SetProperty(ref useindex, value); }
        }

        public TipHeadItem()
        {

        }
    }

    [Serializable]
    public class TipBoxModel : BaseBottleBox
    {
        private TipTypeEnum tipType;
        /// <summary>
        /// Tip头类型
        /// </summary>
        public TipTypeEnum TipType
        {
            get { return tipType; }
            set { SetProperty(ref tipType, value); }
        }

        private bool _havebox = false;
        /// <summary>
        /// 是否有工装
        /// </summary>
        public bool HaveBox
        {
            get => _havebox;
            set
            {
                SetProperty(ref _havebox, value);
            }
        }

        private ObservableCollection<TipHeadItem> tipHeadItems = new ObservableCollection<TipHeadItem>();
        public ObservableCollection<TipHeadItem> TipItems
        {
            get => tipHeadItems;
            set => SetProperty(ref tipHeadItems, value);
        }

        private int useIndex;
        /// <summary>
        /// 使用的索引位置（1-96）
        /// </summary>
        public int UseIndex
        {
            get { return useIndex; }
            set { SetProperty(ref useIndex, value); }
        }

        private int _boxid_inDosingStation = 0;
        /// <summary>
        /// 工装在投料站中位置(1-3)
        /// </summary>
        public int BoxId_inDosingStation
        {
            get => _boxid_inDosingStation;
            set
            {
                SetProperty(ref _boxid_inDosingStation, value);
            }
        }

        private int pos_inReactStation;
        /// <summary>
        /// 在反应站Tip头工装位置(1-6中某几个)
        /// </summary>
        public int Pos_inReactStation
        {
            get { return pos_inReactStation; }
            set { SetProperty(ref pos_inReactStation, value); }
        }


        private int layer_inRack = 1;
        /// <summary>
        /// Tip头工装在反应站中的料架的层号 ，默认放置第一层
        /// </summary>
        public int Layer_inRack
        {
            get => layer_inRack;
            set
            {
                SetProperty(ref layer_inRack, value);
            }
        }

        private int pos_inRack = 0;
        /// <summary>
        /// Tip头工装在反应站中的料架的位置（1-8）
        /// </summary>
        public int Pos_inRack
        {
            get => pos_inRack;
            set
            {
                SetProperty(ref pos_inRack, value);
            }
        }

        public TipBoxModel()
        {

        }

    }
}
