using OpenSEMI.ClientBase;
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CyberX8_MainPages.Unity
{
    public class WaferAssociationInfo :BindableBase
    {
        private int _slotFrom = 1;
        public int SlotFrom
        {
            get { return _slotFrom; }
            set { _slotFrom = value; RaisePropertyChanged("SlotFrom");  }
        }
        private int _slotTo = 25;
        public int SlotTo
        {
            get { return _slotTo; }
            set { _slotTo = value; RaisePropertyChanged("SlotTo"); }
        }
        private string _sequenceName = string.Empty;
        public string SequenceName
        {
            get { return _sequenceName; }
            set { _sequenceName = value; RaisePropertyChanged("SequenceName"); }
        }
        private string _JobID = string.Empty;
        public string JobID
        {
            get { return _JobID; }
            set { _JobID = value; RaisePropertyChanged("JobID"); }
        }
        private ModuleInfo _ModuleData;
        public ModuleInfo ModuleData
        {
            get { return _ModuleData; }
            set { _ModuleData = value; RaisePropertyChanged("ModuleData"); }
        }
        private string _JobStatus = string.Empty;
        public string JobStatus
        {
            get { return _JobStatus; }
            set
            {
                _JobStatus = value;
                RaisePropertyChanged("JobStatus"); RaisePropertyChanged("EnableEditSlot");
            }
        }
        private string _lotId = string.Empty;
        public string LotId
        {
            get { return _lotId; }
            set { _lotId = value; RaisePropertyChanged("LotId"); }
        }
        private bool _LotIdSaved = true;
        public bool LotIdSaved
        {
            get { return _LotIdSaved; }
            set { _LotIdSaved = value; RaisePropertyChanged("LotIdSaved"); }
        }
        public bool EnableEditSlot
        {
            get { return string.IsNullOrEmpty(_JobStatus); }
        }
        /// 
        /// CycleEnable
        /// 
        private bool _IsEnableCycle;
        public bool IsEnableCycle
        {
            get { return _IsEnableCycle; }
            set 
            { 
                _IsEnableCycle = value;
                if (!value)
                {
                    CycleNumber = 1; 
                }
                RaisePropertyChanged("IsEnableCycle"); 
            }
        }
        /// 
        /// CycleNumber
        /// 
        private int _CycleNumber = 1;
        public int CycleNumber
        {
            get { return _CycleNumber; }
            set { _CycleNumber = value; RaisePropertyChanged("CycleNumber"); }
        }
        /// 
        /// SequenceType
        /// 
        private string _sequenceType;
        public string SequenceType
        {
            get { return _sequenceType; }
            set { _sequenceType = value; RaisePropertyChanged("SequenceType"); }
        }
    }
}